Parameterized quality of service in a network

ABSTRACT

A method for managing data transmission comprising making a bandwidth on a network resource available to at least one requester for transmitting or receiving data according to a first request of a first type, the first type have a prescribed quality of service guarantee; transmitting first data in accordance with the first type to or from the at least one requestor on the network resource using a first portion of the bandwidth, if the first data are available to be transferred to or from the at least one requestor; transmitting second data according to a second request of a second type on the network resource to or from the at least one requestor or a second requester, the second data transmitted without a quality of service guarantee using a second portion of the bandwidth, if the first portion of the prescribed bandwidth is less than the entire bandwidth.

CLAIM OF PRIORITY

This application claims priority to U.S. Provisional Application60/901,564 filed Feb. 14, 2007; U.S. Provisional Application 60/927,613filed May 4, 2007; U.S. Provisional Application 60/901,563 filed Feb.14, 2007; U.S. Provisional Application 60/927,766 filed May 4, 2007;U.S. Provisional Application 60/927,636 filed May 4, 2007; and U.S.Provisional Application 60/931,314 filed May 21, 2007, each of which isherein incorporated by reference.

FIELD OF THE DISCLOSURE

The disclosed method and apparatus relates to a communication protocolin a network, and more specifically, relates to a quality of serviceprotocol in a network.

BACKGROUND

In addition to computers, home networks now typically include multipletypes of subscriber equipment configured to deliver subscriber servicesthrough the home network. The subscriber services include the deliveringof multimedia, such as streaming audio and video, through the homenetwork to the subscriber equipment where it is presented to a user. Asthe number of available subscriber services increases, so does thenumber of devices being connected to a home network. The increase in thenumber of services and devices increases the complexity of thecoordination between the network nodes as each node may be produced by adifferent manufacturer at different times. Some home networkingtechnologies have emerged in an attempt to facilitate simple homenetwork solutions and take advantage of existing network infrastructurethat may be present in a number of homes. For example, the Home PhoneNetwork Alliance (HPNA) allows users to network home computers by usingthe existing telephone and coaxial cable wiring within a home.HPNA-enabled devices utilize a different frequency spectrum than thespectrum used by faxes and phones. Instead of using existing telephoneand coaxial wiring, the Homeplug® Power Alliance utilizes the existingelectrical power wiring in a home to create a home network. In aHomeplug® network, all Homeplug®-enabled devices that are plugged into awall outlet connected to a common electrical circuit may be wiredtogether in a home network. One issue with Homeplug® is that the networkbandwidth is susceptible to significant reduction due to largevariations of the home electrical wiring and reactive loads in theoutlets.

Additionally, problems arise in implementing network devices thatcorrectly interact with all other network devices. These problems mayinhibit the deployment of newer devices that provide later-developedservices in the presence of older (legacy) devices. The emergingMultimedia over Coax Alliance (MoCA) standard architecture impacts thisproblem in that (1) network behaviors dynamically assign a device, suchas a node, the “Network Coordinator (NC) role” in order to optimizeperformance, (2) only the device in the NC role is known to be able toschedule traffic for all other nodes in the network and (3) form a fullmesh network architecture between any device and its peers.

With many potential applications sharing the same digital network,various applications have to compete for the same limited bandwidthcompounding the distribution problem. A bandwidth intensive application,such as a high-throughput download, may cause the degradation of othermore important applications sharing the network. This outcome may beunacceptable when the other application requires a high quality ofservice.

Various solutions to solve this problem have been proposed, usuallyinvolving a high-level network controller or having high-levelapplications setting priority to data packets or data streams within thenetwork. Moreover, intelligent network devices require highcomputational power, and are consequently more expensive than they needto be. Finally, complex network devices are impractical for home use, asmost consumers do not have the sophistication or experience to configurea computer network.

SUMMARY OF THE DISCLOSURE

In one embodiment, a method for managing data transmission, comprisesthe steps of: (a) making a prescribed bandwidth on a network resourceavailable to at least one requestor for transmitting or receiving dataaccording to a first request of a first request type, the first requesttype have a prescribed quality of service guarantee; (b) transmittingfirst data in accordance with the first request to or from the at leastone requester on the network resource, such transmission using a firstportion of the prescribed bandwidth, if the first data are available tobe transferred to or from the at least one requester; (c) transmittingsecond data according to a second request of a second request type onthe network resource to or from the at least one requestor or a secondrequester, the second data transmitted without a quality of serviceguarantee, the transmission using a second portion of the prescribedbandwidth, if the first portion of the prescribed bandwidth is less thanthe entire prescribed bandwidth.

In one embodiment, a method for managing data transmission comprises thesteps of: (a) making a prescribed bandwidth on a network resourceavailable to at least one requestor of a first type with a prescribedquality of service guarantee; (b) transmitting first data to or from theat least one requester of the first type on the network resource using afirst portion of the prescribed bandwidth, if the first data areavailable to be transferred to or from the at least one requester of thefirst type; and (c) transmitting second data on the network resource toor from at least one requestor of a second type without a quality ofservice guarantee using a second portion of the prescribed bandwidth, ifthe first portion of the prescribed bandwidth is less than the entireprescribed bandwidth.

In some embodiments, a method of reporting a change in a networkcomprises the steps of: (1) determining a change in a network; (2)generating a first Layer 2 message in response to the change, the Layer2 message indicating a change has occurred in the network, and (3)transmitting the first Layer 2 message to a node connected to thenetwork, wherein upon receiving the first Layer 2 message the nodetransmits a notification to an upper layer application.

In some embodiments, a method for managing data transmission in a sharednetwork comprises the steps of: (a) making a prescribed bandwidth on ashared network resource available to at least one requestor with aprescribed quality of service guarantee for a first time interval; (b)transmitting data to or from the at least one requester on the sharednetwork resource during the first time interval; and (c) releasing theshared network resource associated with the prescribed bandwidth at theexpiration of the first time interval, if a request to make theprescribed bandwidth available for a second time interval is notreceived from the at least one requestor.

In some embodiments, a method of performing a network transaction atLayer 2 comprises the steps of (a) receiving at a network coordinator aLayer 2 request to perform a network transaction from a first node; (b)transmitting a first Layer 2 message from the network coordinator to atleast one node connected to the network in response to the request; (c)receiving, at the network coordinator, a response to the first Layer 2message from at least one node connected to the network, the responseincluding network resource allocation data; (d) determining thecapabilities of the network at the network coordinator based on thereceived response to the first Layer 2 message; and (e) allocatingnetwork resources to perform the network transaction if the networkcoordinator determines there are sufficient network resources to performthe transaction.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates one embodiment of a network architecture.

FIG. 2 is a diagram showing two L2ME Wave Cycles in accordance with theembodiment of FIG. 1.

FIG. 3 illustrates a block diagram of an L2ME Frame in accordance withthe embodiment of FIG. 1.

FIG. 4 is a block diagram of a Layer 2 Management Entity transactionprotocol in accordance with one embodiment.

FIG. 5 illustrates an embodiment of a parameterized quality of servicenetwork architecture.

FIG. 6 illustrates one example of a decision tree of an L2ME convertingTSpec XML into QSpec.

FIG. 7 illustrates one example of a six byte multicast Ethernet address.

FIG. 8 illustrates one example of mapping an IP multicast address to aMAC multicast address.

FIG. 9 is a illustrates one example of a flow management process in anetwork.

FIG. 10 illustrates one example of a system embodiment of a proxy.

FIG. 11 illustrates one example of a proxied flow management process ina network.

FIG. 12 is a diagram showing one example of a Create/Update transactionin accordance with the embodiment of FIG. 5.

FIG. 13 is a diagram showing one example of a Delete transaction inaccordance with the embodiment of FIG. 5.

FIG. 14 is a diagram showing one example of a Maintenance transaction inaccordance with the embodiment of FIG. 5.

DETAILED DESCRIPTION

This description of the embodiments is intended to be read in connectionwith the accompanying drawings, which are to be considered part of theentire written description.

The embodiments relate in general to an apparatus, system, method, andarchitecture to support a low-level messaging framework in a network.Some embodiments facilitate Layer 2 messaging to enable low-cost andhigh-speed management of resources within the network in order to securethe capability to distribute multimedia data (such as video/audio,games, images, generic data and interactive services) within existingin-home networks.

The embodiments facilitate making home networking devices simple so thatthey are easy to use and are cost-effective. In other words, homenetworks should be simple to configure so home users do not have to dealwith complex configuration menus or require advanced knowledge ofcomputer networks. The embodiments also resolve configuration and costissues through the implementation of a low-level digital transportframework that does not require high amounts of computing power. Thislow-level framework may be thought of as an extension to the MediaAccess Control (MAC) sub-layer or the physical (PHY) network layer andis referred to as a “Layer 2 messaging framework.”

Layer 2 messaging may be implemented in a variety of networks where aspectrum is shared and negotiated due to the introduction or removal ofnodes as well as the evolution of network signaling capacity. In someembodiments, the network is a coordinated network having an NC thatcoordinates the communication between the several devices connected tothe network. Coordination is achieved by the NC allocating time slots tonetwork devices during which the devices may transmit or receive MACmessages, probes, and data. The network devices connected to thecoordinated network may include managed and unmanaged devices. Examplesof such networks include coaxial networks in accordance with theMultimedia over Coax Alliance (MOCA) standard, wired networks on“twisted-pair” wire, or wireless home networks. Embodiments aredescribed herein as being implemented with eight or 16 nodes within thenetwork. However, other embodiments may incorporate extensions to enableany number of nodes within a variety of networks. Additionally,embodiments may include systems, methods and devices that include Layer2 messaging architecture and protocols to support end-user applicationsand vendor-specific services.

Embodiments will now be described with reference to a Layer 2 ManagementEntity (L2ME) architecture and messaging protocol for a digital network.Some embodiments support application layer-triggered transactions, suchas but not limited to, a Universal Plug and Play (UPnP) Quality ofService and IEEE Stream Reservation Protocol (SRP). Layer 2 messagingprotocols may enable capabilities such as parameterized Quality ofService (pQoS) transactions within the network. Note that the interfacesbetween the L2ME and an application layer may vary.

FIG. 1 illustrates a coordinated mesh network architecture 100 withmultiple network nodes 104, 106, 108, 110 connected to a network 102.Network node 106 is the NC node and is shown to be configured with PHYlayer 112, MAC sub-layer 114, and an L2ME 116. Note that any networknode may have multiple physical interfaces and may implement upper-layerfunctionality (e.g., TCP/IP, UDP, or the like). Network node 104 is anEntry node (EN). An EN can initiate a transaction, either on behalf ofitself, any other network node, or a node outside of the network thatcommunicates with the EN through a higher layer application. Forexample, the EN may be a computer having a full protocol stack toinitiate a transaction as a proxy for an ingress node that does not havea full protocol stack for interfacing to a user application. Each ofnodes 104, 108, and 110 may also be configured with an L2ME 116.

L2ME 116 provides Layer 2 interfaces and management services throughwhich Layer 2 management functions can be invoked. Based on end-userapplication initiated transactions, L2ME 116 is responsible forexecuting and managing all L2ME transactions, such as parameterizedQuality of Service (pQoS), between network nodes 104, 106, 108, and 110.L2ME 116 includes two sub-layers: an upper Transaction Protocolsub-layer 120 and a lower Wave Protocol sub-layer 118. The L2ME WaveProtocol sub-layer 118 is a high-reliability message mechanism in L2ME116 configured with its own messaging protocol. The L2ME Wave Protocolenables a network node to participate in robust, network-wide,low-latency generic transactions and enables NC node 106 to manage theflow of low-cost audio/video bridging devices, such as devices inaccordance with the IEEE 802.1Qat/D0.8 draft standard (July, 2007),across a home network with multiple Layer 2 Quality of Service segments.

L2ME Wave Protocol

The L2ME Wave Protocol provides reliable transport service for L2METransaction Protocol by generating multiple Wave Cycles. A Wave Cyclestarts when NC node 106 broadcasts a particular payload, such as aRequest, to all nodes 104, 108, 110 connected to the network 102. In oneembodiment, the NC node 106 first classifies all the nodes in theWAVE_NODEMASK field, described in greater detail below, into threecategories before initiating the Wave Cycle. The first category of nodes(“Category 1 nodes”) includes network nodes that have yet to bespecified in the CYCLE_NODEMASK field of a Request L2ME Frame issued bythe NC node 106. The second category of nodes (“Category 2 nodes”)includes network nodes that have been identified in the CYCLE_NODEMASKfield in a Request L2ME Frame issued by NC node 106, but from which NCnode 106 has yet to receive a Response. The third category of networknodes (“Category 3 nodes”) includes the network nodes from which NC node106 has received a Response L2ME Frame.

After NC node 106 has appropriately categorized each of the networknodes 104, 108, 110 as Category 1, 2, or 3 nodes, NC node 106 constructsthe CYCLE_NODEMASK in accordance with the following guidelines. First,if there are three or more Category 1 nodes, then NC node 106 sets acorresponding number of bits to “1” in the CYCLE_NODEMASK. However, ifthere are three or more Category 1 nodes, the number of bits set by NCnode 106 in the CYCLE_NODEMASK may be less than the total number ofCategory 1 nodes, but not less than three bits. For example, if thereare five Category 1 nodes, NC node 106 may set three, four, or five bitsto “1” in the CYCLE_NODEMASK. Second, if there are three or moreCategory 2 nodes, NC node 106 sets three or more of the bits in theCYCLE_NODEMASK to “1”, which correspond to the Category 2 nodes. Third,if there are no Category 1 nodes, or if all of the bits corresponding toCategory 1 nodes have already been set to “1” in the CYCLE_NODEMASK,then NC node 106 sets the bits corresponding to Category 2 nodes in theCYCLE_NODEMASK to “1”. Finally, NC node 106 may set as many bits to “1”in the CYCLE_NODEMASK as NC node 106 may receive a Response from withoutdisrupting network services. Once the CYCLE_NODEMASK has been generated,NC node 106 initiates the Wave Cycle by broadcasting an L2ME messagethat includes the CYCLE_NODEMASK.

A Wave Cycle is completed when either NC node 106 receives acorresponding payload, such as a Response, from some or all of theclient nodes 104, 108, 110, or the NC node's timer expires. For example,NC node 106 transmits a message and then starts its timer. If the timerof NC node 106 reaches T21 (e.g., 20 milliseconds) before receiving aresponsive message from some or all of the network nodes identified inthe CYCLE_NODEMASK, then the Wave Cycle is completed even though NC node106 has not received a responsive message. Note that T21 is the maximumallowable time interval between the transmission of a Request L2ME Frameby NC node 106 and the transmission of a corresponding Response L2MEFrame by the requested node. An L2ME Wave Cycle is successfullycompleted when each of the nodes identified in the WAVE_NODEMASK fieldof the payload have responded. Put another way, a Wave Cycle issuccessful if all of the network nodes 104, 108, 110 are classified asCategory 3 nodes before the timer of NC node 106 reaches T21.Alternatively, a Wave Cycle is unsuccessful, or fails, if NC node 106does not receive a Response L2ME Frame from a Category 2 node that hadits corresponding bit set to “1” in the CYCLE_NODEMASK transmitted by NCnode 106. If the Wave Cycle fails, then NC node 106 repeats the WaveCycle by sending a multicast message to only those nodes from which NCnode 106 did not receive a Response L2ME Frame. Note that in oneembodiment, multicast messages are treated the same as broadcastmessages with respect to repeating the Wave Cycle by sending a multicastmessage to the nodes that do not respond. NC node 106 will complete thescheduled Wave Cycles before creating a new Wave Cycle for any node fromwhich a Response was not received.

FIG. 2 is an example of an L2ME wave diagram 200 showing two Wave Cycles214, 216. A first Wave Cycle 214 is initiated when NC node 206, withnode ID=2, broadcasts a message having a payload to all nodes 202, 204,208, 210, 212 connected to the network 102. In this example, the payloadincludes the NODE_BITMASK 011011, where the right-most bit correspondsto the node with node ID=0. This bitmask indicates that NC node 206expects to receive a payload containing a WAVE_ACK from nodes 202, 204,208, and 210. As shown in FIG. 2, NC node 206 only receives a ResponseL2ME Frame from nodes 202, 204, and 208, and the Response L2ME Framefrom node 210 is either lost or not received before the NC node 206timer expires. The expiration of the timer in NC node 206 completes thefirst Wave Cycle 214, but does not finish the transaction.

Since NC node 206 has not received a Response L2ME Frame from node 210,NC node 206 sends another Request L2ME Frame to node 210, therebyinitiating a second Wave Cycle 216. The Request sent to node 210 is alsosent to node 212 and includes the NODE_BITMASK 110000 requesting clientnodes 210 and 212 to send a WAVE_ACK to NC node 206. The Response L2MEFrames from nodes 210 and 212 are subsequently received by the NC node206, thereby completing Wave Cycle 216.

L2ME Transaction Protocol

The L2ME Transaction Protocol is an upper sub-layer protocol in the L2MEthat uses multiple L2ME Waves to achieve network-wide transactions. Ingeneral, all the L2ME transactions comprise j+1 Waves (where j=0, 1, 2 .. . ) and are started by either an EN or the NC node. An EN may be anynetwork node, including the NC node, which initiates an L2ME transactionbased on an end-user application. In the final L2ME Wave, the requestedresults are returned to the EN by the NC node. The L2ME transaction iscompleted when the requested network nodes provide their finalresponses. In one embodiment, only one L2ME transaction is carried outor pending at any given time within the network. For a failed L2ME Wave,the resultant NC node action depends on the specific L2ME transactiontype and the Wave number.

In general, all L2ME transaction messages may be classified into threedifferent categories during a transaction. The messages are classifiedas follows: (1) Submit; (2) Request; and (3) Response. Nodes that do notuse L2ME messages, such as legacy nodes not configured with an L2ME, maysimply drop these messages. A node not configured with an L2ME mayreceive an L2ME message because the L2ME messages are embedded withinthe preexisting MAC messaging framework. FIG. 3 illustrates one exampleof a MAC frame 300. MAC frame 300 includes a MAC header 302, a MACpayload 304, and a MAC payload cyclic redundancy check (CRC) 310. L2MEframes are embedded within the MAC payload 304 and include an L2MEheader 306 and an L2ME payload 308.

Submit L2ME Messages

The Submit L2ME messages carry application-initiated requests from an ENto the NC node where an L2ME Wave transaction may be initiated. An EN isusually responsible for managing the various stages of a transactionwhile the NC node is responsible for broadcasting the Request, gatheringthe Response of each node, and providing the transaction results to theEN that transmitted the Submit message. Table 1 below illustrates oneexample of a Submit L2ME Frame format, which includes a Submit L2MEFrame header and payload.

TABLE 1 Submit L2ME Message Format Field Length Usage Submit L2ME HeaderHDR_FMT 8 bits 0x8 ENTRY_NODE_ID 8 bits The ID of the node sending thismessage. ENTRY_INDEX 8 bits An Entry node provided value; MAY be used byEntry node to track responses to this Submit message RESERVED 8 bits0x0; Type III VENDOR_ID 16 bits  TRANS_TYPE 8 bits Type of L2MEtransaction defined for VENDOR_ID=0; All other values are reserved IfVENDOR_ID=0  0x1=PQoS transactions  0x2=FMR The use of this field forother values of VENDOR_ID is vendor specific TRANS_SUBTYPE 8 bitsSubtype of L2ME transaction defined for a VENDOR_ID and TRANS_TYPE; allvalues are reserved except for If VENDOR_ID=0  If TRANS_TYPE=0x1  0x1=CREATE   0x2=UPDATE   0x3=DELETE   0x4=LIST   0x5=QUERY  0x6=MAINTENANCE  If TRANS_TYPE=2   0x1=FMR transaction The use of thisfield for other values of VENDOR_ID is vendor specific WAVE0_NODEMASK 32bits  Nodemask specifying nodes that are part of the L2ME Wave 0RESERVED 32 bits  0x0; Type III RESERVED 8 bits 0x0; Type IIIMSG_PRIORITY 8 bits Allowed values: 0xFF where 0xFF is the highestpriority; NC node MAY process received Submit messages based onMSG_PRIORITY field value TXN_LAST_WAVE_NUM 8 bits Allowed values0x00-0x04; value=the [total number of Waves − 1] in an error freetransaction RESERVED 8 bits 0x0; Type III L2ME Transaction PayloadL2ME_PAYLOAD 0-N L2ME payload is L2ME Wave and transaction specificbytes

The Submit L2ME Frame header includes an 8-bit ENTRY_TXN_ID field. TheENTRY_TXN_ID field is the Entry Node's transaction ID, which starts at“1” and is incremented each time a Submit message is sent to the NCnode. The EN_TXN_ID=0 value is reserved for the NC node when there is noEN. Any L2ME transaction that results from a Submit message may containthis transaction ID. Note that a combination of the Entry node ID withthe transaction ID uniquely identifies each L2ME transaction in thenetwork allowing an EN to know that its transaction has been triggered.Additionally, uniquely identifying each transaction allows the EN torecognize and cancel any attempt by the NC node to start a transactionif the EN has already timed out waiting for the transaction to begin.The composition and length of the L2ME_PAYLOAD field depends on thespecific VENDOR_ID, TRANS_TYPE, and TRANS_SUBTYPE fields. The VENDOR_IDis a 16-bit field in the Submit and Request L2ME messages that indicatesa vendor-specific use of various fields of the messages. For example,the assigned VENDOR_ID range for Entropic Communications is 0x0010 to0x001F, and the values 0x0000 to 0x000F are assigned to MoCA. The lengthof the L2ME_PAYLOAD field may be shorter or equal to L SUB_MAX. Alsonote that Submit and Request messages associated with a given L2MEtransaction may have an identical set of VENDOR_ID, TRANS_TYPE, andTRANS_SUBTYPE fields.

Request L2ME Messages

Request L2ME Frame messages are broadcast to all nodes by the NC nodeduring a transaction Wave. In one embodiment in which a Submit messagehas been received by the NC node, the NC node will broadcast a RequestL2ME Frame message as a consequence of the Submit message. In somecases, when an NC node is acting as the EN, as described below, noSubmit message is transmitted and the NC node initiates the transactionby issuing the Request L2ME Frame message on its own behalf. Forexample, when the NC node initiates a management transaction, a SubmitL2ME Frame is not needed and the transaction begins with the RequestL2ME Frame. Each client node receiving a Request L2ME Frame message isexpected to respond to the NC node with results of the operation asrequested by the NC node in the payload. Table 2 shows the Request L2MEFrame message header and payload format, which is similar to the SubmitL2ME Frame format where the MAC header is not shown.

TABLE 2 Request L2ME Frame Message Format Field Length Usage RequestL2ME Transaction Header HDR_FMT 8 bits 0x9 ENTRY_NODE_ID 8 bits The IDof the Entry node that requested the transaction; 0xFF = no Entry nodeENTRY_INDEX 8 bits Copied from initiating Submit; 0 = no Entry nodeWAVE_SEQ_N 8 bits An NC counter, which is held constant for all the L2MEWave Cycles in an L2ME Wave, and is incremented when a new L2ME Wavestarts; VENDOR_ID 16 bits Copied from initiating Submit or NC nodespecified if ENTRY_NODE_ID = 0xFF TRANS_TYPE 8 bits Copied frominitiating Submit or NC node specified if ENTRY_NODE_ID = 0xFFTRANS_SUBTYPE 8 bits Copied from initiating Submit or NC node specifiedif ENTRY_NODE_ID = 0xFF WAVE_NODEMASK 32 bits  If TXN_WAVE_N = 0   Ifthere is an Entry node, copied from initiating   Submit fieldWAVE0_NODEMASK CYCLE_NODEMASK 32 bits  The subset of WAVE_NODEMASK wherethe NC node is to receive a Response in this Wave Cycle; WAVE_STATUS 8bits Bits 7:3 reserved Type III Bit 2: RESP_FAIL - 1 if response was notreceived from the requested node in previous Wave. This indicates to allnodes that this is the last L2ME Wave due to transaction failure;otherwise = 0 Bit 1: reserved Type III Bit 0: FINAL_SUCCESS - 1 if theNC node declare this Wave as the last Wave with no errors; otherwise = 0DIR_LEN 8 bits 0x10 - If L2ME_PAYLOAD field has payload type“concatenated”; otherwise 0x0 TXN_SEQ_N 8 bits A transaction sequencenumber, which is held constant for all the L2ME Waves in an L2MEtransaction, and is incremented by the NC node when by a new L2MEtransaction starts TXN_WAVE_N 8 bits Wave number within the L2MEtransaction, starting with 0 for initial Wave, and incremented by 1 foreach subsequent Wave. L2ME Transaction Payload L2ME_PAYLOAD 0-N One offour different payload types described below. bytes

In this message, the ENTRY_NODE_ID is copied from the initiating SUBMITmessage. If the Request message results from an L2ME transaction withoutan EN, such as an NC management transaction, then the ENTRY_NODE_TXN_IDhas no meaning and the field value is reset to “0”. The WAVE_NODEMASKvalue is identical to the Submit message if this is the first L2ME Wave.In the last L2ME Wave in the transaction, the value of this fieldcontains the set of nodes that are to be part of the last Wave.Otherwise, the WAVE_NODEMASK value corresponds to the set of nodes thatprovided a Response in the IN_NEXT_WAVE bit of the previous Request. TheCYCLE_NODEMASK is the bitmask of the nodes where each bit positioncorresponds to the node ID (i.e., bit 0 value corresponds to node ID=0).The bit corresponding to each node is set if the node is instructed bythe NC node to provide a Response upon receiving the Request message. Inaddition, the Request message includes the WAVE_STATUS field, whichindicates if the previous Wave Cycle failed or completed successfully.Note that the allowed values in the WAVE_STATUS field are 0, 1, 2 and 4,and if the RESP_FAIL and/or NC_CANCEL_FAIL bits are set, this is thelast L2ME Wave of the transaction and any following Wave may contain theL2ME_PAYLOAD field of the failed transaction.

The payload of the Response frame for the L2ME Waves (except for Wave 0)is typically formed by concatenating the Responses from the nodes in theprevious wave. The concatenation is formed as follows: when a ResponseL2ME Frame arrives at the NC node from a given node, its payload isappended to the end of a Response queue at the NC node. Then, the lengthof the payload is written into a data structure, called a directory, andthe node's ID is transmitted. When the NC node is ready to send the nextRequest L2ME Frame, it places the length of the directory into a DIR_LENfield, copies the directory into the beginning of the payload, and thencopies the Response queue into the remainder of the payload.

The DIR_LEN field indicates the length of a directory in the payloadportion of the Request L2ME Frame message. There are four differenttypes of L2ME_PAYLOAD fields that are used in a Request L2ME Framemessage, which are as follows:

-   -   1. The first type of L2ME_PAYLOAD is identical to the payload of        the Submit message if it is the first L2ME Wave of a given        transaction. The length of this L2ME_PAYLOAD field may be less        than or equal to L_SUB_MAX, which is the maximum number of bytes        in the concatenated Submit L2ME Frame payload.    -   2. The second type of Request L2ME Frame payload is sent as a        report from the NC node to the participating nodes starting from        the second through the final Wave of the transaction as shown in        Table 3 below. The L2ME_PAYLOAD field comprises a 16-entry        directory with a 2 byte entry from each node, and a RESP_DATA        field, which is a concatenation of the variable-length Response        L2ME Frame from each of the participating L2ME nodes that        provided a Response in the previous Wave. This directory enables        the receiving node to decode the L2ME Responses from all the        nodes.

TABLE 3 Request “Concatenated” L2ME Frame Payload Format Field LengthUsage Request L2ME Frame Concatenated Payload For (i=0; i<N; i++) {N=DIR_LEN DIR_NODE_ID 8 bits Node ID that sent Response i or 0xFF ifdirectory entry i and subsequent directory entries are unusedDIR_RESP_INFO 8 bits Values [0 . . . (L_RESP_MAX)] indicate the lengthof the payload in the Response from DIR_NODE_ID in units of 4 bytewords. The following values have special meanings and indicate zerolength: UNRECOGNIZED=0xFF - the node's Response header indicated itcouldn't interpret the previous Request OVERFLOW=0xFE - the node'sResponse could not be included given L_REQ_MAX. } RESP_DATA 0-N Anintegral number of variable length Response words payloads, parsable bytraversing lengths interpreted from the directory.

-   -   3. The third type of L2ME_PAYLOAD is in the case of a failed        L2ME transaction where the RESP_FAIL bit or NC_FAIL bit is set        to “1”. The NC node may transmit a zero-length payload in the        Request message of the final L2ME Wave.    -   4. The fourth type of L2ME_PAYLOAD is used to support some        specific L2ME transactions such as parameterized Quality of        Service. In this payload, the DIR_LEN in the Request L2ME Frame        header is not used, and the NC node processes the Responses of        all the nodes to produce a custom Request Frame payload. The        format of the L2ME_PAYLOAD field is defined in the specific L2ME        transaction. Note that Request Frames with no payload consist of        a 64-bit Type III reserved field.

Response L2ME Message Format

The Response L2ME Frame format is shown in Table 4 below. Response L2MEFrames are sent unicast from each L2ME transaction capable node to theNC node at the end of each L2ME Wave. In some embodiments, the NC nodemay be configured to simultaneously receive multiple (e.g., three ormore) Responses from the requested nodes.

TABLE 4 Response L2ME Frame Format Field Length Usage Response L2METransaction Header HDR_FMT 8 bits 0xA RESP_STATUS 8 bit Bits 7:4 -reserved Type III Bit 3: DO_ENTRY_CANCEL=1 iff the Entry node requiresduring Wave 0 that the NC node not to issue further Waves in thetransaction Bit 2: IN_NEXT_WAVE=1 iff the node will be included inWAVE_NODEMASK in the next Wave Bit 1: reserved Type III Bit 0:INTERPRETED=1 if the node fully recognized the Request message RESERVED8 bits Type III WAVE_SEQ_N 8 bits Copied from initiating RequestRESERVED 32 bits Type III L2ME Transaction Response Payload (Optional)L2ME_PAYLOAD 0-N The length is less than or equal to L_RESP_MAX; nowords payload in the Response if this is the final Wave of thetransaction; divisible evenly by 4

The Response L2ME message includes a RESP_STATUS field, which indicatesthe response status of a node that was requested to respond in the nextor final Wave Cycle. In addition, the RESP_STATUS field allows an EN tocancel a transaction it initiated by sending a Submit message to the NCnode, but timed out waiting for the Response message.

If an L2ME-enabled network node receives any L2ME transaction messageswith an unrecognized VENDOR_ID, TRANS_TYPE, or TRANS_SUBTYPE fieldvalue, then the node may set the RESP_STATUS field to “0” in theResponse Frame and the NC node may preclude this node from future Wavesin the transaction. The EN and any other node that sets theIN_FINAL_WAVE bit in any Response may be included in the WAVE_NODEMASKof the final Wave.

L2ME Transaction Overview

L2ME transactions may be initiated in multiple ways, although usuallyonly one L2ME transaction may be carried out at any given time within anetwork. In one embodiment, an L2ME transaction may be initiated by anEN, which may be any node connected to the network. For example, the ENmay be a MoCA network node connected to a computer. The computer may beattached to the Internet and running an application that communicates byway of a higher layer protocol interface. In this configuration, thecomputer may use the EN as a proxy, described in greater detail below,to monitor the entire MoCA network through L2ME messaging in response toapplication-generated operations within the computer.

With reference to FIG. 4, one example of an EN-initiated transaction isnow described. FIG. 4 illustrates a block diagram of one example of anL2ME transaction 400 initiated by EN 402. Upon receiving a request froman upper-level application, EN 402 generates and transmits a Submit L2MEmessage to NC node 404. NC node 404 receives the Submit message andinitiates a first L2ME Wave, L2ME Wave 0, by broadcasting a Requestmessage with a similar header to the Submit message received from EN402. The Request message is broadcast to each of the L2ME capable nodes406, 408, 410 specified by the WAVE_NODEMASK field contained in thepayload. If this Request is sent to a node which is not L2ME capable,the node simply ignores this message.

The Request L2ME Frame message is also sent to EN 402 for reasons nowdescribed. Upon receiving the Request message, EN 402 verifies thetransaction by comparing the appropriate field in the Request headerwith values it used in the Submit header. If the values match, thetransaction will be processed. However, there may be some instances whenthe L2ME transaction in the network is not the most recent transactionrequested by EN 402. This situation arises when the Submit messagetransmitted by EN 402 was corrupted, not received, or not granted by theNC node 404. If the initiated transaction is not the most recentlyrequested L2ME transaction, EN 402 may cancel the transaction by settingthe DO_ENTRY_CANCEL bit to “1” in the Response. Upon receiving aResponse from EN 402 with the DO_ENTRY_CANCEL bit set to “1”, the NCnode 404 will not issue more L2ME Waves in this transaction, but mayimmediately initiate another L2ME transaction.

Assuming the L2ME transaction is not canceled by EN 402, the requestedL2ME transaction-capable nodes send a Response message to NC node 404with a payload indicating whether or not they are opting to participatein the next Wave(s) of this transaction. A node may opt not toparticipate in future Waves if, for example, the transaction is aparameterized QoS transaction to create a new parameterized QoS flow andthe node cannot support the parameterized QoS flow. A node may opt toparticipate in the network transaction by setting the IN_NEXT_WAVE bitto “1” and may opt to not participate by setting the IN_NEXT_WAVE bit to“0”. In the following L2ME Waves, NC node 404 typically generates theRequest L2ME Frame payload by concatenating all Responses from theprevious Wave as described above. The NC node 404 then sends thisRequest message to nodes that requested participation in the currentWave. Note that for some transaction embodiments, the NC node mayproduce a distinct, non-concatenated Request message payload from thereceived Response payloads. The transaction continues until the NC nodereaches the maximum number of Waves specified in the Submit L2MEmessage. Upon reaching the maximum number of Waves in the transaction,NC node 404 issues the final Wave, which comprises a Request L2ME Framemessage to the EN 402.

However, if NC node 404 receives Responses from all of the L2ME capablenodes with the IN_NEXT_WAVE bit set to “0” and there is an EN 402, thenNC node 404 may skip intermediate Waves in the transaction andsynthesize an appropriate Request payload. If the REQUEST payload wouldhave been created using concatenation, then NC node 404 fills thedirectory with DIR_NODE_ID=0xFF in all of the entries and thesynthesized Request may have the TXN_WAVE-N properly set for the finalWave.

In a number of L2ME transactions, NC node 404 may request only EN 402 toprovide a Response to its Request message after all other client nodeshave responded. This Response, which completes the L2ME Wave in varioustransactions, ensures that the L2ME transaction has been fully completedbefore EN 402 notifies its application that the transaction iscompleted. In other L2ME transactions, the transaction is not completeduntil NC node 404 sends a Request to multiple nodes, including EN 402,and receives a Response from each of the nodes.

In some instances, an entire L2ME transaction may result in an error.This situation arises if, for example, (1) an L2ME Wave Cycle fails; (2)the number of executed L2ME Waves in a given transaction is less thanthe expected total number of L2ME Waves as indicated in theTXN_LAST_WAVE_NUM field in the initiating Submit L2ME message; and (3)the L2ME transaction was initiated by an EN. In one embodiment, if anL2ME transaction fails, NC node 404 issues a new L2ME Wave called atransaction-failed Wave. This Wave announces the termination of thetransaction due to the failure of the previous L2ME Wave. Thetransaction-failed Wave is initiated by NC node 404 sending a RequestL2ME Frame header, as defined in Table 2 above, with the WAVE_STATUSfield set to “4” and the WAVE_NODEMASK having the bit corresponding toEN 402 set to “1”. Additionally, the Request L2ME Frame is a zero-lengthpayload as described above. Upon receipt of this Request, EN 402 sends aResponse L2ME Frame as shown in Table 4 above.

In another embodiment, NC node 404 may autonomously initiate an L2MEtransaction to inform the network nodes which other nodes are L2MEtransaction-capable. These NC node initiated transactions are usuallyconducted in a single Wave and are designed to achieve networkmaintenance by providing interoperability with legacy or othercompatible nodes. L2ME Wave operations initiated by the NC node usuallyhave the following characteristics:

-   -   1. In order to bound the Wave duration, the NC node should        include at least three nodes in the CYCLE_NODEMASK field;    -   2. If the NC node does not receive the expected Response from        the requested node within NC_TIMEOUT, the NC node assumes that        the Response is no longer outstanding;    -   3. The NC node may not request a node to re-transmit its        response before all the other nodes have been asked to first        send their Responses; and    -   4. Any node that fails to provide a Response, when requested,        within T21 of the second Request causes an L2ME Wave failure.

The WAVE_NODEMASK field indicates the set of nodes that are recognizedby the NC node 404 as an L2ME transaction-enabled node. If the node isrecognized by the NC node 404, then it responds using a zero-lengthResponse message to complete the transaction in accordance with Table 5below.

TABLE 5 Response L2ME-Enabled Frame Format Field Length DescriptionResponse L2ME Header HDR_FMT 8 bits RESP_STATUS 8 bits Ignored byreceiving node RESERVED 8 bits Type III WAVE_SEQ_N 8 bits Copied frominitiating Request RESERVED 32 bits  Type III Response L2ME PayloadRESERVED 32 bits  0; Type III

Parameterized Quality of Service Architecture

One embodiment of a network parameterized Quality of Service (pQoS)segment is now described. Note that a home network may include multiplepQoS segments, such as a coaxial network, MoCA segment and an IEEE802.11 segment. A pQoS segment may be any group of networked nodes thatshare the same PHY and MAC layers, which ensures that a flow enteringthe network at an ingress node will reach one or more egress nodes witha pQoS guarantee. A pQoS guarantee is an assurance that at least apredetermined data rate will be provided for the communication of datafrom the ingress node to the egress node within a predetermined time,e.g., a cycle. In one embodiment of a pQoS-enabled network, the flows ina network may be guaranteed and/or best effort flows. The guaranteedflows are ensured at least one level of performance defined by theparameters of the flow. A time slot reserved for a parameterized flowmay be made available to other flows if the parameterized flow does nothave data to transmit during its time slot. In one embodiment, each pQoSsegment has its own ID, which is typically the MAC address of the NCnode or the channel number of the radio frequency on which the channelworks. An upper-layer pQoS logical entity may be configured to dictatehow a flow can be set up across several pQoS segments.

Generally, networks may be divided into three categories: (1) legacynetworks, such as networks without L2ME transaction or pQoSfunctionality; (2) networks with pQoS enabled; and (3) networks withpQoS disabled. Any network node operating in an L2ME enabled networkwill behave as a legacy device if the node is operating in a networkwith other legacy devices. In one embodiment, each network node has anL2ME and pQoS functionality.

In some embodiments, the pQoS operation is disabled if any one of thenetwork nodes does not support pQoS. For example, if a non-pQoS-capablenode joins a pQoS-enabled network, the network will cease supportingpQoS, and will also stop creating new pQoS flows until all network nodesare pQoS capable. If a network node attempts to create a new pQoS flow,an error message will be transmitted to the network node requesting tosetup the new flow. Additionally, pQoS flows will no longer beguaranteed and packets will be treated as prioritized or best efforttraffic. However, if a non-pQoS-capable node leaves the network leavingonly pQoS-capable nodes, then the network may upgrade and enable pQoStransmission. Upon the upgrading to pQoS, prioritized flows will remainas prioritized flows until updated by an ingress node by an update asdescribed below.

With reference to FIG. 5, one embodiment of a pQoS architecture, basedon the L2ME architecture, is now described. Parameterized QoS networkarchitecture 500 includes a network 502 having multiple nodes 504, 506,508, 510. Network 502 may be a coordinated network including a coaxialnetwork in accordance with the MoCA standards, a mesh network, or awireless network. In one embodiment, each of the several nodes 504, 506,508, 510 has a PHY layer 512, a MAC sub-layer 514, and an L2ME 516. In aUPnP Quality of Service environment, L2ME 516 interfaces to the QoSDevice Service 518. In a non-UPnP environment, the L2ME interfaces to anappropriate QoS application entity (not shown) for QoS management. L2ME516 is further configured to adapt messages from upper layerapplications into Layer 2 compatible messages as explained in greaterdetail below.

The several nodes 504, 506, 508, 510 are also configured with upperlevel capability, which includes a QoS Device Service 518, a QoS ManagerService 520, and a QoS Policy Holder service 522. The QoS Device Service518 receives action invocations from the QoS Manager Service 520 andreports the results of the action back to the QoS Manager Service 520.The QoS Device 518 will execute actions on its own or by utilizing alower layer through L2ME 516. L2ME 516 also may get notifications fromLayer 2 regarding the current state and a change of state in Layer 1 orLayer 2. The L2ME 516 is configured to isolate Layer 2 issues fromhigher layer(s) and hide lower layer details and specificities from thehigh layer(s).

As illustrated in FIG. 5, node 504 is an Entry node and node 506 is theNC node. Nodes 508 and 510 are ingress and egress nodes, respectively.Note that in any network 502 there may be multiple egress nodes 510.Assume that an end-user application requires a specific bandwidth for aflow, e.g., a video stream, from ingress node 508 (source device) toegress node 510 (sink device). A traffic stream is typically viewed as astream with unidirectional flow from ingress node 508 to egress node510. The end-user application typically is aware of the identity of theingress node, the egress node, and the streamed content. The end-userapplication also may be aware of the Traffic Specification (TSpec XML)of the content.

TSpec XML may include a variety of parameters that describe thebandwidth, packet-size, latency, and loss tolerance of a flow. Some ofthe bandwidth parameters include the mean data rate, peak data rate, andmaximum burst size. The packet-size parameters may specify the minimumand maximum packet size as well as a nominal packet size. Latencyparameters include maximum delay variation as well as the maximum andminimum service intervals.

In the pQoS environment and as shown in FIG. 6, the L2ME 606 is adaptedto translate the TSpec XML into a Layer 2 specific QSpec. The L2ME 606may translate QSpec from TSpec XML by simply using TSpec XML as QSpec,selecting some of the parameters of the TSpec XML for QSpec and ignoringother parameters, or selecting some of the parameters of TSpec XML andtranslating the parameters into QSpec format. Some of the QSpecparameters may include the service type, the peak data rate, the meandata rate, and the minimum, maximum, and nominal packet size.

The end-user application constructs a Traffic Descriptor and requestsQoS Manager 520 to setup the required QoS resources for the requestedflow. The Traffic Descriptor includes the Traffic ID tuple{SourceIPAddress, SourcePort, DestinationAddress, DestinationPort,IpProtocol} information together with the path information received fromeach QoS Device Service 518. QoS Manager 520, acting on behalf of theend-user application, requests the QoS Policy Holder Service 522 toprovide the appropriate policy for the requested flow as described bythe Traffic Descriptor. The QoS Policy Holder service 522, which is arepository of QoS policies for the network 502, provides the QoS Manager520 with the appropriate policy for the requested flow. This policy maybe used to set the relative importance of the traffic flow. The userimportance number is used to ensure that traffic streams of the greatestimportance to a user(s) receive the corresponding priority to thenetwork resources. Based on this policy, QoS Manager 520 configures theQoS Device Service 518 thereby enabling ingress node 508 and egress node510 to handle the traffic stream. Note that the QoS Policy Holder 522and QoS Manager 520 services may reside either on any network node 504,506, 508, 510 or on another pQoS segment.

Cost of pQoS Flow

Prior to admitting or updating pQoS flows in a network, the NC node 506must decide if the specific flow request can be granted, e.g., if thereare sufficient network resources available. The NC node 506 makes thedecision on whether or not the flow should be admitted by firstdetermining the Cost of a pQoS flow. The Cost of a Flow (CF) is ameasure of the specific bandwidth required to support a given pQoS flow,and is expressed in the SLOT_TIME field (i.e., slot times, where a slottime is a unit of measure equal to 20 ns). Note that in one embodiment,the basic bandwidth unit is a time slot and not a transfer rate (e.g.,Mbits/s). However, in an alternative embodiment, the CF is provided as atransfer rate.

For every Create or Update pQoS flow transaction, defined in greaterdetail below, the CF may be periodically calculated by the ingress node508. The NC node 506 may use this CF calculation to decide if therequested pQoS flow is allowed in the network. The CF (multiple ofSLOT_TIME/second) may be calculated as follows:

$\begin{matrix}{{C\; F_{new}} = {N_{PPS}{MAX}\left\{ {T_{MIN},\left\{ {{\left\lceil \left( \frac{8 \cdot L_{P}}{O\; F\; D\; M_{b}} \right) \right\rceil \left( {T_{C\; P} + T_{F\; F\; T}} \right)} + T_{I\; F\; G} + T_{P\; R\; E}} \right\}} \right\}}} & {{Eq}.\mspace{14mu} (1)}\end{matrix}$

Where,

TABLE 6 List of Eq. (1) Parameters Parameter Name Description N_(PPS)Total number of transmitted packets/second T_(MIN) Minimum packet sizetransmission time L_(P) Packet length (bytes) including the RS padOFDM_(B) Number of bits per OFDM symbol based on PHY Profile used forthe transmission T_(CP) Cyclic prefix length (multiple of SLOT_TIME)T_(FFT) IFFT/FFT period (multiple of SLOT_TIME) T_(IFG) IFG period(multiple of SLOT_TIME) L_(PRE) Length of the preamble per packet(multiple of SLOT_TIME)

N_(PPS)MAX is the number of Orthogonal Frequency Division Multiplexing(OFDM) symbols/packets where ┌x┐ is the rounded-up integer of X, whichis multiplied by the OFDM symbol length (# of SLOT_TIME/second). Notethat the length of OFDM symbol depends on the network channelcharacteristics. After adding the preamble length and the interframe gap(IFG) length per packet, N_(PPS)MAX is multiplied by the total number oftransmitted packets per second, which is given by the peak packet ratedivided by the nominal packet size. The cost of all existing flows, N,(with no packet aggregation) for each ingress node 508 is given by:

$\begin{matrix}{{C\; F_{mode}} = {\sum\limits_{i = 1}^{N}{C\; F_{i}}}} & {{Eq}.\mspace{14mu} (2)}\end{matrix}$

In order for an ingress node 508 to accept a new flow, its maximumavailable bandwidth must be greater than or equal to the cost of thecurrent flow and the new flow. This condition is given by:

$\begin{matrix}{{{B\; {W_{i}\left( \max \right)}} \geq {{C\; F_{new}} + {C\; F_{node}}}} = {{C\; F_{new}} + {\sum\limits_{j = 1}^{N}{C\; F_{1}}}}} & {{Eq}.\mspace{14mu} (3)}\end{matrix}$

Once the new pQoS flow has been accepted by the ingress node, the NCnode 506 decides if the cost of all the aggregated pQoS flows on all thenodes including the cost of the new pQoS flow is less than or equal tothe total maximum available network bandwidth. Assuming M nodes in thenetwork, the total available network bandwidth must satisfy thecondition:

$\begin{matrix}{{0.8\left\lbrack {{B\; W\; N\; C\mspace{11mu} ({total})} - {C\mspace{11mu} ({overhead})}} \right\rbrack} \geq {{C\; F_{new}} + {\sum\limits_{j = 1}^{M}{C\; F_{node}^{j}}}}} & {{Eq}.\mspace{14mu} (4)}\end{matrix}$

Where BW_(NC) is the total network bandwidth. In some embodiments, thetotal available bandwidth in the network for pQoS service is 80% of thetotal network bandwidth minus the cost of the all overhead, which mayinclude all link control packets, reservation requests, admissioncontrols, and probes. If Eq. (4) is true, then the NC node 506 admitsthe new pQoS flow to the network. If Eq. (4) is not true, then the NCnode 506 rejects the flow request and returns the Available FlowBandwidth (AFBW) as follows:

$\begin{matrix}{{A\; F\; B\; W} = {{0.8\left\lbrack {{B\; W_{NC}\mspace{11mu} ({total})} - {C\mspace{11mu} ({overhead})}} \right\rbrack} - {\sum\limits_{j = 1}^{M}{\sum\limits_{i = 1}^{N}{C\; F_{i}^{j}}}}}} & {{Eq}.\mspace{14mu} (5)}\end{matrix}$

In order for the NC node to accept the new flow, the NodeCapacity foreach of the ingress node 508 and egress node 510 must be greater than orequal to the cost of the existing flows and the new flow through thatnode. This condition is given by:

$\begin{matrix}{{{{NodeCapacity}\left( \max \right)} \geq {{C\; F_{new}} + {C\; F_{node}}}} = {{C\; F_{new}} + {\sum\limits_{i = 1}^{N}{C\; F_{i}}}}} & {{Eq}.\mspace{14mu} (6)}\end{matrix}$

The remaining node capacity (REM_NODE_CAPACITY) is the differencebetween the left and right side of Eq. (6), and is one of thebandwidth-related criteria used by the NC node 506 before permitting aspecific flow creation or update. Since the most basic bandwidthrequirement for a pQoS flow is the number of time slots needed for onecycle (e.g., 1 ms) and simple mapping between a bandwidth value innumber of Mbits/s and the number of time slots at the data link layer isnot straightforward due to OFDM modulation and bitloading, a conversionis typically needed to determine the number of packets needed for theflow. To find the equivalent maximum number of packets in one data linkcycle and the size (in bits) of each packet, the worst case bandwidthneed of a flow at the data link layer per cycle is as follows:

QSpec_PeakDataRate=MaxNumberofPackets×QSpec_MaxPacketSize  Eq. (7)

Where,

-   -   QSpec_PeakDataRate and its conversion into time slots are the        data link layer bandwidth reserved for the flow by the NC;

$\mspace{79mu} {{{MaxNumberofPackets} = \frac{TSpec\_ PeakDataRate}{TSpec\_ MinimumPacketSize}};}$QSpec_MaxPacketSize = TSpec_MaxPacketSize + EthernetPacketOverhead;TSpec_PeakDataRate  over  1  ms  is  calculated  from  TSpec_PeakDataRate  with  TimeUnit

The TimeUnit parameter allows the specification of token bucket TSpecXML of a live traffic source to match its traffic generation process.The TimeUnit parameter also provides a convenient and flexible way toextract token bucket TSpec XML from pre-recorded or legacy contentregardless of whether the transport information is available. Forexample, for MPEG-coded video content without transport information, thePeakDataRate may be specified as the maximum number of bits within avideo frame divided by the video frame duration. In this manner, theTimeUnit is the video frame interval determined by the video frame rate.If the media is PCM audio for example, the TimeUnit may be equal to thereciprocal of its sampling rate. For content that is furnished withtransport information such as RTP, the resolution of the RTP timestamp,which has a default of 90 KHz, is usually used to specify TSpec XML. Itis not unusual that the TimeUnit in the TSpec XML does not match theTimeUnit determined by the operational clock rate of an underlying linkthat is used to transport the traffic stream and a conversion of thetoken bucket TSpec XML specified in a different TimeUnit may benecessary.

From the definition of PeakDataRate in the token bucket model, at anyinterval [t1, t0], the maximum number of bits generated by a trafficsource with characteristics of {r,b,p} may not exceed p(t₁−t₀), for anyt₁−t₀≧TU_(TSPEC). Therefore, the maximum data rate, or PeakDataRatemeasured in any interval [t₁−t₀], may not exceed

$\frac{p\left( {t_{1} - t_{0}} \right)}{t_{1} - t_{0}} = {p.}$

Similarly, from the definition of MaximumBurstSize in the token bucketmodel, at any interval [t₁−t₀], the maximum amount of bits generated bya traffic source with characteristics of {r,b,p} may not exceedr(t₁−t₀)+b, for any t₁−t₀≧TU_(TSPEC). The maximum data rate, orPeakDataRate measured at any interval [t₁−t₀] may not exceed

$\frac{{r\left( {t_{1} - t_{0}} \right)} + b}{t_{1} - t_{0}} = {r + {\frac{b}{t_{1} + t_{0}}.}}$

Therefore, combining both of the above constraints, the PeakDataRatemeasured at the operational clock rate c_(oper) (denoted by p_(oper))for any time unit of TU_(oper)(>TU_(TSPEC)) determined by operationalclock rate c_(oper), is given by:

$\begin{matrix}\begin{matrix}{p_{oper} = {\min \left( {p,{r + \frac{b}{t_{1} - t_{0}}}} \right)}} \\{= {{\min \left( {p,{r + \frac{b}{T\; U_{oper}}}} \right)}{\min \left( {p,{r + {b\; c_{oper}}}} \right)}}}\end{matrix} & {{Eq}.\mspace{14mu} 8}\end{matrix}$

Parameterized QoS Flow Guarantee

The pQoS flow guarantee means that the pQoS-enabled network is able tosupport the flow provided that the CF does not exceed the availablenetwork bandwidth. This means that a new pQoS flow will not be admittedinto the network unless the flow's peak data rate/nominal packet size(N_(pps)) can be supported at any given time. Note that either theingress node 508 or the NC node 506 may permit a flow's ingress peakpacket rate to instantaneously exceed the peak data rate/nominal datasize that can be supported by the network.

In one embodiment, NC node 506 may guarantee that a portion of the totalnetwork bandwidth is set aside for prioritized traffic and the remainderof the traffic is used for parameterized traffic. For example, NC node506 may set aside 20% of the total network bandwidth for prioritized QoStraffic and the remaining 80% of the bandwidth is set aside forparameterized QoS traffic. Prioritized QoS traffic includes asynchronousstream traffic and asynchronous data traffic. Asynchronous streamtraffic, for example a video stream, requires the knowledge of theaverage data rate of the stream. Accordingly, the QoS Manager 520 mayrequest admission or obtain information about the availability ofbandwidth for asynchronous stream traffic. If the prioritized bandwidthis not available due to heavy network loading, the stream will not beadmitted and the ingress node 508 may then attempt to send the trafficas asynchronous data traffic. The QSpec for asynchronous stream trafficincludes a service-type parameter and a maximum packet size parameter.

Asynchronous data traffic, for example a file transfer, is traffic forwhich there is no required or predictable bandwidth. Asynchronous datatraffic can also include best effort traffic, e.g., traffic that doesnot have a Virtual LAN (VLAN) tag indicating its priority. In oneembodiment, best effort traffic does not go through the admissionprocess described below. Network control and flow management traffic aretypically regarded as prioritized traffic. However, in certainapplications where short and predictable latency are required, networkcontrol and flow management traffic may be structured to use theparameterized flow bandwidth (e.g., pull-mode DVR playback or DTCPlocalization constraint where the round-trip time of management exchangeis limited to 7 ms). Alternatively, network control and flow managementtraffic may be treated as high-priority prioritized traffic. Whentreated as high-priority prioritized data traffic, the bandwidth setaside for the prioritized traffic should be larger than needed fornetwork management and stream management traffic so that thesemanagement messages can be sent in a timely fashion.

When requesting bandwidth for a pQoS flow, all nodes may set thePRIORITY field in the data/control Reservation Request Element Frame to0x3 as shown in Table 7 below. NC node 506 coordinates the scheduling ofthe flows within network 502. In one embodiment, the NC 506 coordinatesthe scheduling on a cycle-by-cycle basis where each cycle has a cycletime of approximately 1 millisecond. Note that the cycle time may varyfrom cycle to cycle. In each cycle, time slots are first allocated tothe pQoS flows if data are available for transmission, and the remainingtime slots are made available to prioritized or best-effort traffic.Three priority levels are supported at the network level: (1) highpriority including network and stream management; (2) middle priorityincluding asynchronous streams; and (3) low priority includingasynchronous traffic without a priority tag, such as best efforttraffic. Note that in some embodiments more or fewer priority levels maybe implemented. When scheduling flows, NC node 506 schedules pQoS flowson a first-in first-out basis. In one embodiment, these pQoS flows arescheduled before any non-pQoS flows are scheduled.

TABLE 7 Data/Control Reservation Request Element Frame Format withRevised Priority Field Field Length Usage FRAME_SUBTYPE 4 bits IfFRAME_TYPE = Control  0x0 - Type I/III Probe Report  0x1 - Reserved 0x2 - Reserved  0x3 - Key distribution  0x4 - Dynamic Key distribution 0x5 - Type I/III Probe Report Request  0x6 - Link Acknowledgement 0x7 - Reserved  0x8 - Periodic Link Packet  0x9 - Power Control  0xA -Power Control Response  0xB - Power Control  Acknowledgement  0xC -Power Control Update  0xD - Topology update  0xE - Unicast MAC Address Notification  0xF - Reserved If FRAME_TYPE=Ethernet Transmission  0x0 =ETHERNET_PACKET FRAME_TYPE 4 bits 0x2 = Control 0x3 = EthernetTransmission DESTINATION 8 bits  Node ID of the destination nodePHY_PROFILE 8 bits Indicates the type of modulation scheme used for thistransmission bits 7:6  00=profile sequence 0  01=profile sequence 1 bits5:0  0x2=Diversity Mode profile  0x7=Unicast profile  0x8=Broadcastprofile All other values reserved. REQUEST_ID 8 bits A sequence numberassociated with the request. PARAMETERS 12 bits  Reserved PRIORITY 4bits If FRAME_TYPE=Control  0x0 If FRAME_TYPE=Ethernet Transmission 0x0-Low Priority  0x1-Medium Priority  0x2-High Priority 0x3-Parameterized Quality of Service flow DURATION 16 bits Transmissiontime required in multiples of SLOT_TIME

Some parameterized flows may be a variable bit rate (VBR) flows. Sincethe peak data rate of a VBR flow is larger than its average rate and aflow uses its average rate over a long period of time, a significantpart of the parameterized flow bandwidth may not be used by the flow. Tomaximize bandwidth, the unused bandwidth of a VBR flow is made availableto the asynchronous/prioritized traffic. Accordingly, the actualasynchronous bandwidth typically has two components: (1) a pre-setportion for asynchronous/prioritized traffic and (2) the reclaimedportion from the parameterized flow bandwidth.

Lease Time

To maximize network efficiency, applications may lease networkbandwidth, e.g., time slots. The LeaseTime may be used in different way.For example, an application may use a large LeaseTime value to cover theentire length of a program. However, another application may use a muchshorter LeaseTime value so that the network resources are released ifthe application is no longer in use. In one embodiment, the UPnP QoSlayer creates and deletes, or tears down, pQoS flows in the network. Inthis embodiment, operators may set up permanent flows and the QoSManager can locate unused pQoS flows through polling each nodeassociated with a particular flow.

In other embodiments, Layer 2 keeps track of active flows throughmonitoring the LeaseTime of each pQoS flow. If the LeaseTime associatedwith a pQoS flow expires, the flow is torn down at Layer 2. At thedevice level, each device is responsible to manage the LeaseTimerequested by the QoS Manager. In this embodiment, LeaseTime may beextended, if needed, by the QoS Manager. An Update Flow transaction,described in greater detail below, is used to indicate a new LeaseTimefor a flow. At the network level, the NC tracks the reserved bandwidthof each network flow. If the LeaseTime of a flow expires, the NC nodewill release the network resources associated with the flow.

In some embodiments, Layer 2 technology may not use LeaseTime, but use afixed virtual lease time, known as volatile reservation. With volatilereservation, a flow reservation automatically expires after a givenperiod. However, the flow reservation may be periodically repeated toprevent an interruption of the flow.

In some embodiments, Layer 2 keeps track of active pQoS flows throughmonitoring the activity of each flow, and tears down a flow which is notactive for a well-defined duration. Each packet of the flow serves tomaintain the flow. If an application suspends a flow, e.g., a pause, andwants to maintain the node and network level resources, the applicationmay generate packets strictly to maintain to the flow resources. Thesepackets include a FlowId, but do not need to include a data body. Anyintermediate nodes on the path of the flow and the NC will only releaseresources of the flow if the flow is inactive for more thanInactivityInterval time. The InactivityInterval is a programmableparameter to enable different users and applications to adjust thevalues.

Parameterized QoS Flow Setup and Management

In one embodiment, any node connected to the network may act as an EN504 and initiate a network transaction such as setting up a pQoS flow.Note that an EN 504 may request and setup a guaranteed pQoS flow and/ora non-guaranteed pQoS flow, such as a prioritized flow. For example, anEntry node may be running multiple upper-layer applications and eachapplication may request bandwidth in the network. One application mayrequest a guaranteed flow and another application may request aprioritized flow. Generally, to setup a pQoS flow, the QoS Manager 520will receive the IP and MAC addresses for both the ingress node 508 andegress node 510 as well as the QoS Devices on the flow path from the QoSDevice Service 518. The QoS Manager 520 queries a node to determine pathinformation, quality of service capabilities, and network topology. Whenprovided with this information from the QoS Device Service 518, the pathof the pQoS flow is determined by the QoS Manager 520 using theTrafficId tuple {SourceIPAddress, SourcePort, DestinationAddress,DestinationPort, IpProtocol} information together with the informationreceived from each QoS Device Service 518, e.g., information regardingthe path information, quality of service capabilities, and networktopology. The QoS Manager 520 determines the ingress and egress QoSDevice Services 518 by comparing the IP addresses in the TrafficId forthe ingress node 508 and egress node 510 with the IP addresses of alldiscovered QoS Device Services 518 discovered on the network 502. Usingthis information, the QoS Manager 520 locates the intermediate devicesby looking up the MAC addresses corresponding to the ingress node 508and the Destination IP address in the TrafficId. QoS Manager 520 alsoacquires the path information structure from each available QoS DeviceService 518 and compares the MAC addresses of the ingress 508 and egress510 nodes of the flow with the ReachableMAC value in the pathinformation structure of every node until the path is found.

The QoS Manager 520 determines the topology elements of the network,e.g., a node's INTERFACE, LINK, TxDirection and RxDirection. A node'sINTERFACE is the identifier associated with a node if a node hasmultiple network interfaces, e.g., a wireless interface and a coaxialnetwork interface. A LINK is a network node that is not the ingress oregress node, but is associated with and transfers data for a flow. TheINTERFACEId and TxDirection for the ingress node 508 are determined bycomparing the IP address in the TrafficId with the IP address of allINTERFACEs on the ingress node 508. The INTERFACE with the matchingaddress is the INTERFACE that is in use. Note that an INTERFACE's IPaddress may be identical to the node's IP address. The INTERFACEId andRxDirection for the egress node 510 is determined by comparing thedestination IP address in the TrafficId to the IP address of all theINTERFACEs on the device to determine a match. The INTERFACE with thematching address is the INTERFACE that is in use. A Receiving LINK maybe identified by comparing the MAC address of the ingress node 508 withthe ReachableMAC address on each LINK of each INTERFACE. The LINK withthe matching MAC address is then used as a Receiving LINK in anintermediate node. If a match cannot be located, then the node is not onthe path of the data flow.

A Transmitting LINK is determined by comparing the MAC address of theegress node 510 to the Reachable MAC addresses on each LINK of eachINTERFACE. The LINK with the matching MAC address is the used LINK, andthe LINKId for this node is the MAC address of the node. If a matchcannot be found, the node is not on the path of the flow. A node is onthe path if two matches are found. The INTERFACEs used are determined bythe matching LINKId. With the knowledge of the topological elementsinvolved (INTERFACEId, LINKId, Rx/TxDirection), the capabilities of eachnode can be extracted from the nodes by querying for their servicedevice capabilities.

In one embodiment, a pQoS flow is identified by a FlowID. The FlowID isused to manage a flow between an ingress node and one or more egressnodes by providing a unique identifier for each flow. At the data packetlevel the FlowID is the tuple {Packet_DA, UserPriority} and may beincluded in each data packet at the position of a regular IEEE 802.3packet. In one embodiment, the Packet_DA (packet destination address)may be in the form of either a multicast MAC address or a unicast MACaddress. When the FlowID is in the form of a multicast address, itsvalue may be selected to uniquely identify each of a plurality of flowsfrom the same ingress node at the network level. UserPriority is apriority value contained in a VLAN tag or a Differentiated Services CodePoint (DSCP) to differentiate levels of pQoS flows. In one embodiment,the UserPriority is set to 4 or 5. The FlowID at the packet level may beused for data packet classification and service by the transmittingnode, the receiving node, and any intermediate node in the path of theflow.

At the control/management or network level, the FlowID is defined as thetuple {FlowHandle, Packet_DA, UserPriority}. The FlowHandle is a numberunique at the network level and is used to manage a flow between atransmitter and receiver(s) in a network. The FlowHandle does not needto be included in every data packet transmitted in the flow, but may becommunicated to each node involved in the flow through a control ormanagement message such that each node involved in the flow can uniquelyidentify the flow through control or management messages. The FlowHandleprovides a unique identifier for each flow when Packet_DA is a unicastaddress and there is more than one flow going to the same destination(e.g., same Packet_DA). The FlowHandle enables transmitters to manage(e.g., setup/create, update or delete) a particular flow withoutaffecting another flow going to the same egress node 510. In oneembodiment, the FlowHandle is chosen to have the form of a multicast MACaddress and is used to ensure that the FlowID tuple of a flow is uniqueat the network level. In one embodiment, the FlowHandle uses the MACaddress of the ingress node 508, which limits the number of uniquelyidentifiable flows to 2, one with a priority of 4 and one with apriority of 5, with the unicast Packet_DA from the same ingress node508.

In some embodiments, the unique FlowHandle may be generated in adifferent way. One example method of generating a FlowHandle in the formof a multicast MAC address from a unicast IP address is shown in FIG. 7.As shown in FIG. 7, to generate a FlowHandle in the form of a six bytemulticast MAC address, a three byte Organizationally Unique Identifier(OUI) is used in the three most significant bytes of the six-byte MACaddress. The three least significant bytes are Network InterfaceController (NIC) specific and are filled in using the three leastsignificant bits of the unicast IP address.

In the instances when a pQoS flow may be rejected because FlowID at thenetwork level already exists at the network level, the Entry node 504will increment the FlowHandle by a predetermined value and retrycreating the flow. For example, if the calculated FlowHandle01-00-5E-4D-62-B1 already exists in the network, then EN 504 mayincrement the address by 0x100, e.g., 01-00-5E-4D-63-B1, and retrycreating the pQoS flow. The EN 504 may continue to increment the addressuntil the FlowID is unique at the network level. In some embodiments, EN504 may increment other fields of the FlowID at the network level, forexample, the user priority field or the packet destination address.

In embodiments where the intended destination of a pQoS flow is amulticast IP group, an IP multicast address may be mapped to a multicastMAC address. With reference to FIG. 8, one example of a method formapping an IP multicast address to a MAC multicast address is nowdescribed. To create a 48-bit MAC multicast address, the top 24 bits arefilled in using the multicast OUI (01-00-5E in FIG. 8). The 25th bit isfixed at ‘0’ and the bottom 23 bits of the multicast IP address areplaced in the bottom 23 bits of the MAC address. Accordingly, the 9 mostsignificant bits (MSB) of the multicast IP address are dropped inmapping the IP address to the MAC address.

With reference to FIG. 9, one example of flow management, such as a flowsetup/create, update, or delete, is now described. In a UPnP or similarenvironment, the QoS Device Service (not shown) of an EN 904 invokes theL2ME of the node to send a request to perform flow management to the NC906. NC 906 will broadcast a request to all network nodes 908, 910, 912and wait for a corresponding response from at least the ingress 908 andegress 910 nodes. The ingress node 908 will use TSpec XML to calculatethe number of time slots needed to setup or update the flow as well asthe resources needed at the node level (e.g., system bus bandwidth andmemory). If the ingress node 906 can support the flow, then it will senda response to the NC 908 indicating that it can support the flow and thenumber of time slots needed for the flow. If the ingress node 908 cannotsupport the flow, the response will indicate that it cannot support theflow and identify the available bandwidth in Mbits/s at the ingress node908. Each egress node 910 will also determine, in a manner similar tothat of the ingress node 908, if it can support the flow or not and senda corresponding message to the NC 906.

The NC 906 will use its responses to determine if the flow setup orupdate is supported in the network. If the ingress node 908 and at leastone egress node 910 report that the flow update is supported, then theNC 910 will determine if the number of time slots necessary to setup orupdate the flow. If the number of time slots required to setup or updatethe flow is available in the network, NC 906 will broadcast a message toall network nodes to allocate the resources. If either the ingress node908 and/or all of the egress nodes 910 cannot support the flow setup orupdate, NC 906 will not allocate resources and will report the maximumavailable bandwidth to EN 904.

Releasing a flow in a network may be initiated by an EN 904 transmittinga request to release or delete an existing flow to the NC 906. NC 906will broadcast a message to all network nodes 908, 910, 912 requestingeach node to release resources associated with the pQoS flow. NC node906 will wait to receive a response from at least the ingress 908 andegress 910 nodes. If the flow was previously released, or does not existin the network, the ingress 908 and/or egress 910 may transmit aresponse to the NC 906 indicating that the flow does not exist. If theflow does exist, the ingress node 908 and egress node 910 will reportback to the NC 906 at which time the NC will broadcast a message to allnetwork nodes 908, 910, 912 to release the flows. Upon receiving themessage from the NC 906, the nodes will release the resources associatedwith the pQoS flow. Nodes that are not involved with a setup or updateor delete flow may simply ignore all received messages.

Proxied Parameterized QoS Flow Management

A network node configured with an L2ME, but without an upper layerapplication (“Layer-2-only node”), can be proxied by a UPnP QoS-enablednode or any node with an L2ME that can pass pQoS Management messagesbetween the QoS Manager and the Layer 2-only node. Additionally, a nodemay be proxied by a second node through a Layer-2 bridging technique,such as, but not limited to, IEEE802.11 including IEEE802.1D,IEEE802.1Q, IEEE802.1Qat, and IEEE802.1Qav. Proxying enables the QoSManager to perform QoS Management on a Layer-2-only node. One example ofa proxy process is shown in FIG. 11. The role of the proxy is simply topass pQoS Management Request, Response, and Event messages withoutmodifying the contents of these messages. In one embodiment, the pQoSmanagement messages are classified into three categories, which are asfollows:

-   -   1. Flow Management messages including SetupFlow, UpdateFlow, and        ReleaseFlow;    -   2. Device Management messages including DeviceCapability and        DeviceState; and    -   3. Eventing messages where a Layer 2-only node generates Layer 2        events to the QoS Manager.

Additionally, a QoS Device Service may proxy another QoS Device Service,so that the QoS Manager may perform all pQoS management operations whileonly communicating with one pQoS Device. As shown in FIG. 10, the EN1002, which is also the proxy node, includes a PHY layer 1004, Data Linklayer 1006, and an L2ME 1008. L2ME 1008 is configured to communicatewith QoS Device Service 1012 through L2ME Aggregation Entity 1010.Proxied node 1014 also includes a PHY layer 1016, a Data Link layer1018, and an L2ME 1020. L2ME 1020 of proxied node 1014 communicates witha QoS Device Service 1024 through L2ME Aggregation Entity 1022. An L2MEAggregation Entity 1022 may be implemented when a node has multiplenetwork interfaces, such as, for example, a wireless interface and aMoCA interface.

The proxy process begins with the L2ME 1008 of proxy node 1002 receivinga request from the QoS Device Service 1012. In this request, the L2MEAggregation Entity requests the static proxy capabilities of theINTERFACE. The L2ME of an INTERFACE/node may be able to proxy some orall other nodes connected to a network. L2ME 1008 generates a RequestL2ME message and sends the message to proxied node 1014. Note thatalthough FIG. 10 only shows one node being proxied, in other embodimentsmultiple nodes may be proxied. The Request L2ME message typicallyincludes a request to perform network or flow management, devicemanagement, or to determine if a network event has occurred. Forexample, a node may be proxied to create/setup, update, or delete a pQoSflow in a network or to determine the capabilities of one or all devicesconnected to the network, such as, for example, the maximum transmissionrates (bits/s), the ability of a node to perform parameterized orprioritized quality of service.

Upon receiving the Request L2ME message, proxied node 1014 generates anappropriate Response L2ME Frame and transmits the message back to proxynode 1002. L2ME 1008 in proxy node 1002 forwards an appropriate responseto the L2ME Aggregation Entity 1010, which may then pass the message tothe QoS Device Service 1012. Through this process, a node outside of thenetwork may gain access to, or even manage, the network.

Parameterized QoS Transactions

Embodiments will now be described as being implemented with the L2MEprotocol. Note that in other embodiments, network transactions may beperformed implementing other protocols. In the embodiment illustrated inFIG. 5, pQoS transactions may be initiated by either the NC node 506 orby an Entry node 504. EN-initiated transactions typically comprise twopQoS Waves and are usually initiated with a Submit message being sentunicast to the NC node 506. Note that although pQoS transactions aredescribed using L2ME protocol, other implementations may be used toperform the network transactions. The Submit message transmitted from EN504 may be a consequence from a message received from another pQoSsegment outside of network 502, from an upper-layer application at EN504 or from another node connected. Upon receipt of the Submit message,NC node 506 typically starts the first Wave by broadcasting a Requestmessage to all network nodes 504, 508, 510 asking for specific pQoS flowinformation to be returned. In the second Wave, NC node 506 typicallybroadcasts the information received from the Responses from the networknodes in the first Wave.

In contrast, pQoS transactions initiated by NC node 506 typicallycomprise only a single pQoS Wave. The pQoS Wave is initiated by NC node506 broadcasting a Request message to all the nodes 504, 508, 510requesting a specific action to take place. The Wave is completed when aResponse is received by the NC node 506 from each of the requestednetwork nodes 504, 508, 510.

Each of the supported pQoS flows may be transmitted either in a unicast,multicast, or broadcast flow. Note that multicast flows within somenetworks are handled as broadcast flows where the egress node ID is0x3f. A broadcast flow is a pQoS flow transmitted to all the networknodes in the network. NC node 506 may delete a unicast flow if theingress node 508 or egress node 510 is disconnected from the network502. In contrast, broadcast flows are usually not deleted for networktopology reasons, except for when an ingress node 508 is disconnectedfrom the network.

Create and Update Parameterized QoS Flow Transactions

FIG. 12 illustrates an example pQoS Create/Update transaction inaccordance with the L2ME protocol. Note that although pQoS transactionsare described using L2ME protocol, other implementations may be used toperform the network transactions. The purpose of a Create or Updatetransaction is to create a new pQoS flow or update the pQoS flowattributes between the ingress node 508 and egress node 510 as shown inFIG. 5.

In one embodiment, a pQoS transaction is initiated when the NC node 506receives a Submit message from an EN 1204. Note that EN 1204 may sendthe Submit message in response to an upper layer application such as theQoS Device Service 518 (shown in FIG. 5) or upon receiving a messagefrom another node outside the QoS segment. After receiving the Submitmessage from EN 1204, NC node 1206 transmits a Request message to allnodes 1204, 1208 connected to the network thereby starting the firstwave (Wave 0) 1210. The first wave 1210 is used to inform all thenetwork nodes 1204, 1208 about the proposed pQoS flow Create or Updateoperation and collect metrics about current flow allocations from thenodes.

TABLE 8 Submit L2ME Header and Payload Format for Create/Update FieldLength Usage L2ME SUBMIT Header for CREATE and UPDATE HDR_FMT 8 bitsENTRY_NODE_ID 8 bits The ID of the Entry node initiating thistransaction ENTRY_INDEX 8 bits RESERVED 8 bits VENDOR_ID 8 bits 0=MoCATRANS_TYPE 8 bits 1=pQoS TRANS_SUBTYPE 8 bits 1: Create; 2: UpdateWAVE_NODEMASK 32 bits  All nodes in the network MSG_PRIORITY 8 bits 240TXN_LAST_WAVE_NUM 8 bits 2 RESERVED 8 bits 0x0; Type III Submit Payloadfor Create and Update FLOW_ID 48 bit s pQoS flow L2 ID RESERVED 16 bits 0x0; Type III RESERVED 24 bits  0x0; Type III INGRESS_NODE_ID 8 bits IfTRANS_SUBTYPE=1, Node ID for the ingress of the flow; otherwise ignoreRESERVED 24 bits  0x0; Type III EGRESS_NODE_ID 8 bits IfTRANS_SUBTYPE=1, Node ID for egress of unicast flow or 0x3f is for abroadcast flow; otherwise ignore L2ME_DATA 32 bits  Application specificdefined content-optional field for sending node and mandatory forreceiving node for up layer. RESERVED 64 bits  Type III TV ENTRIES (upto 3 entries) For (i=0; i<N; i++){ N = number of TV entries TAG NAME 8bits Tags are defined in TAG VALUE 24 bits  Value associated with tag }

The tag-value (TV) field has of up to 24 different pQoS entries. EachpQoS TV entry comprises an 8-bit tag field followed by a 24-bit tagvalue field. Table 9 shows an example of a list of pQoS tags for the TVentries. Note that tag “0” indicates the current TV and any following TVentries can be ignored. PEAK_DATA_RATE values outside the range may beinterpreted as a special case to query the available bandwidth withoutcreating the flow. The LEASE_TIME field indicates the duration afterwhich the ingress node 508 (shown in FIG. 5) may stop treating theassociated traffic as a pQoS flow and release the resources associatedwith the flow.

TABLE 9 Defined Tags for TV entries TAG Name Tag # Tag Value DescriptionEND OF TV LIST 0 ignored PEAK_DATA_RATE 2 0 - 0xFFFFFE; Peak data rate(kb/s) 0xFFFFFF = only for query and no pQoS flow is created or updated;NOM_PACKET_SIZE 9 Nominal packet size (bytes) - Required; see LEASE_TIME20  Lease time (seconds) - Optional (default = 0; permanent) RESERVEDAll Reserved for future use; MoCA-1.1 others node ignore

Upon receiving the Request L2ME message, ingress node 508 and egressnode 510 (both shown in FIG. 5) use the TSpec XML value to calculate thetime slots needed for the flow as well as the resources needed from eachnode, such as system bus bandwidth and memory. Each requested noderesponds to the NC node 1206 with a Response L2ME Frame indicating theaggregated costs of existing pQoS flows and completing the first L2MEWave. Note that if a node receives the Request L2ME Frame and is notinvolved in the flow, it may simply ignore the message. One example of aResponse message format for Create/Update operations is specified inTable 10 below. Note that if NC node 1206 does not receive a ResponseL2ME Frame from the ingress node 508 or the egress node 510 within agiven time interval, then NC node 1206 will rebroadcast the Request L2MEmessage up to a number of times, e.g., three times, before treating themessage as failed.

TABLE 10 Response L2ME Message Format for Create/Update (Wave 0) FieldLength Usage Response L2ME Header for Create/Update HDR_FMT  8 bits 0x8RESP_STATUS  8 bits Bits 7:4 - reserved Type III Bit 3: DO_ENTRY_(—) Bit2: IN_NEXT_WAVE - set to ‘1’ if the node is ingress for the flow;otherwise=implementation specific Bit 1: reserved Type III Bit 0:INTERPRETED - ‘1’ RESERVED  8 bits Type III WAVE_SEQ_N  8 bits Copiedfrom initiating Request RESERVED 32 bits Type III Response L2ME Payloadfor Create/Update RESERVED  8 bits Type III VETO_CODE  8 bits As definedin Table 11 RESERVED 16 bits Type III EXISTING_TPS 32 bits Duration inmultiple of SLOT_TIME/second of the set of existing flows for which thisnode is an ingress node EXISTING_PPS 32 bits Packets/second of the setof existing flows for which this node is the ingress node COST_TPP 32bits Ingress node's cost of new or updated flow (multiple ofSLOT_TIME/packet); If not an ingress node set to “0” REM_NODE_CAPACITY32 bits For the requested flow's nominal packet size, the peak data rate(kb/s) that this node can commit to this flow. This value may be may bemore or less than the requested peak data rate. If this node is notingress or egress node, set to 0xFFFFFFFF

Each requested node 1204, 1208 generates the Response L2ME Frame payloadby calculating the EXISTING_TPS value for all the existing flowsexcluding the new or updated flow in which the node is an ingress node.This value is calculated by using Eq. (1) for each flow. The nodes 1204,1208 also calculate the EXISTING_PPS value for all the existing flowsexcluding the new or updated flow. The EXISTING_PPS value is the sum ofthe peak data rate/nominal packet size for each flow. Additionally, thenodes 1204, 1208 calculate the COST_TPS value as the cost of the new orupdated flow in SLOT_TIME/second according to Eq. (1). Values forPEAK_DATA_RATE=0 are excluded. If there are ingress or egress nodelimits on the flow throughput (bits/second), the nodes 1204, 1208calculate the remaining node capacity in bits/second (REM_NODE_CAPACITY)and identify the reason using the VETO_CODE field (node's capacitydefinition). One example of a format of the Response L2ME Frame for Wave1 is shown in Table 15 below.

There are several scenarios in which a node may be unable to fulfill theRequest issued by NC node 1206. In these cases, the node issues aVETO_CODE, one example list of VETO_CODEs is shown in Table 11 below.INVALID_TV is issued if one or more of the following statements are TRUEabout the TV set as received by NC node 1206:

-   -   1. PEAK_DATA RATE is not present.    -   2. NOM_PACKET_SIZE is not present.    -   3. NOM_PACKET_SIZE value <64 B or >1518 B

TABLE 11 List of Acceptable VETO Code Values VETO CODE NAME ValueDescription VETO_CODE_INGRESS_OK 1 Node is the Ingress node (both Create& Update flows) VETO_CODE_NONINGRESS_OK 2 Node is not the ingress nodeand does not forbid flow creation or update VETO_CODE_FLOW_EXISTS 3 Flowis already exist on the node - node veto the creation of the same flow(only for Create flows) VETO_CODE_INSUF_INGR_BW 4 Ingress node hasbandwidth limitation, preventing a flow from being created as specified(both Create & Update flows) VETO_CODE_INSUF_EGR_BW 5 ReservedVETO_CODE_TOO_MANY_FLOWS 6 Node has already too many existing flows -(only for Update flow) VETO_CODE_INVALID_FLOW_ID 7 The requested flow IDis not usable as a Quality of Service flow ID by the ingress node -(Only for Create flows) VETO_CODE_INVALID_TV 8 VETO_CODE_INVALID_NODE_ID9 Node ID became invalid during network operation bothVETO_CODE_LEASED_EXPIRED 10 Update only

Before the NC node 1206 may initiate the second wave (Wave 1) 1212, itneeds to determine if the outcome of the Create or Update transaction iseither (1) denied because a node provided non-bandwidth-related reasonsfor the requested flow, (2) denied because of bandwidth limitation, or(3) allowed to commit flow resources as requested.

TABLE 12 Non-Bandwidth-Related VETO Codes and Rollback Reasons VETO CODENAME Non-Bandwidth ROLLBACK_REASON NAME VETO_CODE_FLOW_EXISTSROLLBACK_REASON_FLOW_EXISTS VETO_CODE_TOO_MANY_FLOWSROLLBACK_REASON_TOO_MANY_FLOWS VETO_CODE_INVALID_FLOW_IDROLLBACK_REASON_INVALID_FLOW_ID VETO_CODE_INVALID_TVROLLBACK-REASON_INVALID_TV VETO_CODE_INVALID_NODE_IDROLLBACK_REASON_INVALID_NODE_ID VETO_CODE_LEASE_EXPIREDROLLBACK_REASON_LEASE_EXPIRED

If any node returns one of the VETO_CODEs listed in Table 12 above, thenthe Request for Wave 1 contains the corresponding ROLLBACK_REASON. Ifone node does not return VETO_CODE_INGRESS_OK, then the REQUEST for Wave1 contains ROLLBACK_REASON_FLOW_NOT_FOUND as shown in Table 14 below.

NC node 1206 evaluates and ensures the following three bandwidth-relatedcriteria are met before permitting a specific flow Create or Update:

-   -   1. Aggregated TPS—the sum of EXISTING_TPS and COST_TPS values        from all nodes may be less than QUALITY OF SERVICE_TPS_MAX    -   2. Aggregated PPS—the sum of EXISTING_PPS and N_(pps) values        from all nodes may be less than QUALITY OF SERVICE_PPS_MAX.    -   3. Ingress or egress node capacity—the returned        REM_NODE_CAPACITY value at the ingress or egress nodes may be        greater than or equal to the requested flow PEAK_DATA_RATE.

If NC node 1206 determines that the requested flow resources may becommitted for a Create or Update transaction, it may send a Request L2MEFrame with header, shown in Table 2 above, with a zero-length payload tothe participating nodes in Wave 1 to commit the requested resources.

If any one of these bandwidth-related criteria fails, then NC node 1206may calculate the MAX_PEAK_DATA RATE (THRESHOLD BPS) value in thepayload of the Request Frame. The MAX_PEAK_DATA_RATE is the maximumallowable flow PEAK_DATA_RATE (bits/second) that would have succeeded.NC node 1206 may also specify the most limiting criteria by selectingone of the following ROLLBACK_REASONs:

-   -   1. ROLLBACK_REASON INSUF_ING BW,    -   2. ROLLBACK_REASON_INSUF_EGR_BW,    -   3. ROLLBACK_REASON_INSUF_AGGR_BW    -   4. ROLLBACK_REASON_INSUF_AGGR_PPS

The second wave 1212 informs the nodes about the decision of the flowCreate or Update operation. If the Create or Update operations failed inthe first wave 1210, NC node 1206 may send the Request L2ME Frame forthe second wave 1212 according to Table 13 below where THRESOLD_BPSvalue is only defined for the four above ROLLBACK_REASONs. Note that ifan Update operation fails, the existing parameterized QoS flow stillpersists with its current TSpec XML parameters.

TABLE 13 Request L2ME Frame Payload for Failed Create/Update (Wave 1)Field Length Usage Request Header for Create/Update (Wave 1) HDR_FMT 8bits ENTRY_NODE_ID 8 bits ENTRY_INDEX 8 bits RESERVED 8 bits 0; Type IIIVENDOR_ID 8 bits 0 TRANS_TYPE 8 bits 1=QOS TRANS_SUBTYPE 8 bits 1:Create; 2: Update WAVE_NODEMASK 32 bits  CYCLE_NODEMASK 32 bits WAVE_STATUS 8 bits 0x0 DIR_LEN 8 bits Ignore TXN_SEQ_N 8 bits TXN_WAVE_N8 bits 1 Request Payload for Create/Update ROLLBACK_REASON 8 bitsROLLBACK_REASON for failed operation BW LIMIT INFO 8 bits Bits 7:4 -reserved Type III Bit 3: INSUF_ING_BW - set to “1” if insufficientingress node bandwidth Bit 2: INSUF_ENG_BW - set to “1” if insufficientegress node bandwidth Bit 1: INSUF_AGGR_TPS - set to “1” if aggregateTPS is limited Bit 0: INSUF_ING_PPS - set to “1” if aggregate TPS islimited RESERVED 16 bits  0x0; Type III MAX_PEAK_DATA_RATE 32 bits Maximum allowable flow peak data rate (bits/second) to create or updatethis flow.

TABLE 14 List of acceptable ROLLBACK_REASON Values ROLLBACK_REASON NAMEValue Description ROLLBACK_REASON_FLOW_EXISTS 3 CREATE operation faileddue to a node already acting as ingress for the specified flowROLLBACK_REASON_INSUF_INGR_BW 4 Flow can't be created due toinsufficient bandwidth on ingress node data path; NC provides themaximum feasible data bandwidth ROLLBACK_REASON_INSUF_EGR_BW 5 Flowcan't be created due to insufficient bandwidth on egress node data path;NC provides the maximum feasible data bandwidthROLLBACK_REASON_TOO_MANY_FLOWS 6 Ingress or egress nodes are unable toadd the flow ROLLBACK_REASON_INVALID_FLOW_ID 7 The requested flow ID isreserved by the node ROLLBACK_REASON_INVALID_TV 8 Node can't accept thereceived TV ROLLBACK_REASON_INVALID_NODE_ID 9 Node ID became invalidduring network operation ROLLBACK_REASON_LEASE_EXPIRED 10 Updateoperation failed due to flow being deleted from the networkROLLBACK_REASON_FLOW_NOT_FOUND 16 Update operation failedROLLBACK_REASON_INSUF_AGGR_TPS 17 Insufficient flow bandwidth on theMoCA ™ network ROLLBACK_REASON_INSUF_AGGR_PPS 18 Insufficientpackets/second on the MoCA ™ network

Upon receiving a zero-length Request for a successful Create operationin the second wave 1212, the ingress node 504 (shown in FIG. 5) for theflow may commit the requested resources. Each node 1204, 1208 mayrespond with a Response message format, one example of which is shownbelow in Table 15.

TABLE 15 Response L2ME Message Format for Create/Update (Wave 1) FieldLength Usage Response L2ME Header for Create/Update (Wave 1) HDR_FMT 8bits RESP_STATUS 8 bits Bits 7:4 - reserved Type III Bit 3:DO_ENTRY_CANCEL - ‘0’ Bit 2: IN_NEXT_WAVE - See Bit 1: reserved Type IIIBit 0: INTERPRETED - ‘1’ RESERVED 8 bits Type III WAVE_SEQ_N 8 bitsCopied from initiating Request RESERVED 32 bits  Type III Response L2MEPayload for CREATE/UPDATE RESERVED 32 bits  0; Type III

Delete Parameterized Quality of Service Flow Transaction

The purpose of Delete Quality of Service flow transaction is to teardowna specific pQoS flow between a set of ingress 508 and egress 510 nodes(shown in FIG. 5). With reference to FIG. 13, one example of a DeletepQoS transaction 1300 in accordance with the embodiment shown in FIG. 5is now described. The Delete pQoS flow transaction 1300 comprises threeL2ME Waves 1310, 1312, 1314. The transaction starts when EN 1304 sends aSubmit message to the NC node 1306 specifying the flow ID to be deleted.One example of a Delete message format is shown below in Table 16.

TABLE 16 Submit L2ME Message Format for Delete Operation Field LengthUsage L2ME SUBMIT Header for DELETE HDR_FMT 8 bits ENTRY_NODE_ID 8 bitsThe ID of the Entry node initiating this transaction ENTRY_INDEX 8 bitsRESERVED 8 bits 0; Type III VENDOR_ID 16 bits  0 TRANS_TYPE 8 bits 1=QOSTRANS_SUBTYPE 8 bits 3: Delete WAVE_NODEMASK 32 bits  All QoS CapableNodes MSG_PRIORITY 8 bits 240 TXN_LAST_WAVE_NUM 8 bits  2 RESERVED 8bits 0x0; Type III Submit Payload for Delete FLOW_ID 48 bits  QoS flowL2 identification number RESERVED 16 bits  0x0; Type III RESERVED 32bits  0x0; Type III

The first wave (Wave 0) 1310 of the Delete transaction 1300 informs allnetwork nodes 1304, 1308 about which pQoS flow and resources are to bedeleted. NC node 1306 initiates the first wave 1310 using a Requestmessage format based on the Submit message to all the nodes 1304, 1308.The nodes 1304, 1308 may respond with a Response message, indicating ifthey have the resources associated with the flow to be deleted.

TABLE 17 Response L2ME Header and Payload for Delete (Wave 0) FieldLength Usage Response L2ME Header for Delete (Wave 0) HDR_FMT 8 bitsRESP_STATUS 8 bits Bits 7:4 - reserved Type III Bit 3: DO_ENTRY_CANCEL -Bit 2: IN_NEXT_WAVE - set to ‘1’ if the node has resources to be deletedfor the requested flow Bit 1: 0 Bit 0: INTERPRETED - ‘1’ RESERVED 8 bitsType III WAVE_SEQ_N 8 bits Copied from initiating REQUEST RESERVED 32bits  Type III Response L2ME Payload for Delete (Wave 0) RESERVED 32bits  0x0; Type III

During the second wave 1312, Wave 1, the flow resources are deleted. NCnode 1306 initiates the second wave 1312 using an Request message formatwith the concatenated responses from the first wave 1310. One example ofa Response message format used in the second wave 1312, Wave 1, is shownin Table 18 below. Each node 1304, 1308 responds with a Response Framein the second wave 1312, indicating flow deletion by setting bit 31 inthe DELETED field in the payload portion of the Frame.

TABLE 18 Response L2ME Payload for Delete (Wave 1) Field Length UsageResponse L2ME Header for Delete (Wave 1) HDR_FMT 8 bits RESP_STATUS 8bits Bits 7:4 - reserved Type III Bit 3: DO_ENTRY_CANCEL - ‘0’ Bit 2:IN_NEXT_WAVE - Bit 1: 0 Bit 0: INTERPRETED - ‘1’ RESERVED 8 bits TypeIII as defined in ref. [1] WAVE_SEQ_N 8 bits Copied from initiatingREQUEST RESERVED 32 bits  Type III as defined in ref. [1] Response L2MEPayload Delete (Wave 1) DELETED 32 bit  Bit 31 - 1 if resources weredeleted for the specified flow Bits 30:0 - reserved Type III

In the third wave 1314, Wave 2, NC node 1306 informs EN 1304 that therequested flow was deleted. The third wave 1314 is initiated by NC node1306 using a Request message format with the concatenated responses fromthe second wave 1312. The Delete transaction 1300 is completed when EN1304 and any other requested nodes 1308 provide their final Response asshown in Table 19 below.

TABLE 19 Response L2ME Header and Payload Format (Wave 2) Field LengthUsage Response L2ME Header for Delete (Wave 2) HDR_FMT 8 bitsRESP_STATUS 8 bits Ignored by receiving node RESERVED 8 bits Type IIIWAVE_SEQ_N 8 bits Copied from initiating REQUEST RESERVED 32 bits  TypeIII Response L2ME Payload for Delete (Wave 2) RESERVED 32 bit  Type III

Maintenance Parameterized QoS Flow Transaction

The Maintenance pQoS transaction may be used to periodically assess ifthere are sufficient network resources for the committed pQoS flows.With reference to FIG. 14, one example of a Maintenance pQoS transaction1400 in accordance with the embodiment shown in FIG. 5 is now described.In one embodiment, Maintenance pQoS transaction 1400 may be accomplishedby the NC node 1406 issuing this transaction between T22 (T6/5) to T6seconds where T6 may be 25 or 50 seconds. Additionally, the NC node 1406may issue this transaction T22 (T6/5) seconds after a new L2MEpQoS-enabled node joins the network 502. The Maintenance transaction1400 comprises two L2ME Waves 1410, 1412 and a Submit message is notrequired since the transaction is triggered by the NC node 1406.

NC node 1406 initiates the first wave 1410, Wave 0, and the Maintenancetransaction 1400 by transmitting a Request message, one example of whichis shown in Table 20 below. The Request message asks all the nodes 1404,1408 to provide information about their current flow allocation metrics.

TABLE 20 Request L2ME Frame Format for Maintenance (Wave 0) Field LengthUsage Request L2ME Header for Maintenance HDR_FMT 8 bits ENTRY_NODE_ID 8bits 0xFF ENTRY_INDEX 8 bits RESERVED 8 bits 0; Type III VENDOR_ID 8bits 0 TRANS_TYPE 8 bits 1 = PQOS TRANS_SUBTYPE 8 bits 6: MaintenanceWAVE_NODEMASK 32 bits  All nodes CYCLE_NODEMASK 32 bits  WAVE_STATUS 8bits 0x0 DIR_LEN 8 bits Ignore TXN_SEQ_N 8 bits TXN_WAVE_N 8 bits 0 L2MEPayload for Maintenance RESERVED 32 bits  0x0; Type III

Each requested node 1404, 1408 sends its Response message with thepayload format as shown in Table 21 for the first wave 1410, specifyingthe EXISTING_TPS and EXISTING_PPS values for all the existing flows inwhich the node is an ingress node.

TABLE 21 Response L2ME Payload Format for Maintenance (Wave 0) FieldLength Usage Response L2ME Header for Maintenance HDR_FMT  8 bitsRESP_STATUS  8 bits Bits 7:4 - reserved Type III Bit 3:DO_ENTRY_CANCEL - ‘0’ Bit 2: IN_NEXT_WAVE - Bit 1: 0 Bit 0:INTERPRETED - ‘1’ RESERVED  8 bits Type III WAVE_SEQ_N  8 bits Copiedfrom initiating Request RESERVED 32 bits Type III Request L2ME Payloadfor Maintenance EXISTING_TPS 32 bits SLOT_TIME/second of all theexisting flows for which the node is ingress node EXISTING_PPS 32 bitspackets/second of all the existing flows for which the node is ingressnode RESERVED 32 bits 0x0; Type III RESERVED 32 bits 0x0: Type III

The second wave 1412, Wave 1, enables NC node 1406 to find out if thecurrent pQoS flows in the network are guaranteed in view of changingnetwork conditions based on the results of the first wave 1410. The NCnode 1406 initiates the second wave 1112 using a Request message formatheader shown in Table 22 with the following changes:

-   -   1. WAVE_STATUS=1    -   2. DIR_LEN=0x10    -   3. TXN_WAVE_N=1

If the aggregate of all the pQoS flows are over-committed, then NC node1406 sets the OVER_COMMITTED field value to “1” in the Request messageof the second wave 1412. Each node 1404, 1408 may send a message to itsapplication layer notifying it that the network's pQoS flow resourcesare not guaranteed.

TABLE 22 Request L2ME Payload Message Format for Maintenance (Wave 1)Field Length Description OVER_COMMITTED 32 bits Set to ‘1’ if pQoS flowsare over committed; otherwise ‘0’ RESERVED 32 bits 0x0; Type IIIRESERVED 32 bits 0x0; Type III

The Maintenance transaction 1400 is completed when each node 1404, 1408sends its Response Frame to NC node 1406 as shown in Table 23 below.

TABLE 23 Response L2ME Message Format for Maintenance (Wave 1) FieldLength Usage Response L2ME Header for Maintenance (Wave 1) HDR_FMT 8bits RESP_STATUS 8 bits Ignored by receiving node RESERVED 8 bits TypeIII WAVE_SEQ_N 8 bits Copied from initiating REQUEST RESERVED 32 bits Type III Response L2ME Payload for Maintenance RESERVED 32 bits  0x0:Type III

Event Mechanism

The Event Mechanism may be implemented in hardware or software and isused to spontaneously indicate changes in the network to the QoS Manager520 through the QoS Device Service 518. Events may be triggered for avariety of reasons including, but not limited to, the addition or lossof a network node, an increase or decrease in network bandwidth, or achange in the path of a parameterized network flow.

In one embodiment, all network events may be global in nature such thatNC node 506 is aware of each and every network event. In thisembodiment, only the NC node 506 and the EN 504 are needed to report anetwork event.

In some embodiments, the events are not global and thus messaging isused to inform the nodes of changes in the network. If the EventMechanism is implemented in software and the network does not include aproxy, the Event Mechanism may be implemented as an unsolicitedbottom-up message or as a response to periodic polling by the QoS DeviceService 518. The polling interval may be set at 1 second or anotherpredetermined time interval. In one embodiment including a proxy, theEvent Mechanism may be implemented as an unsolicited Layer 2 message tothe proxy, or as a response message to periodic polling by the proxy.

In order to simplify the implementation, all events may be aggregatedtogether into a single message with each event represented by a flag.The aggregated event flag is generated by a node having a QoS DeviceService or an L2ME Aggregation Entity each time there is a change in thepath of a network flow. Upon receiving an event message, the receivermay use polling to determine the actual event if desired. However, UPnPdoes not use such an aggregation, and in this embodiment aggregation isdone only between Layer 2 and the QoS Device Service 518. The QoS DeviceService 518 will de-aggregate the message for UPnP compliance. Note thatthe de-aggregation may not be necessary for a non-UPnP systemimplementation.

An Event may also be triggered each time a parameterized QoS flow issetup or torn down in a network. When a flow is setup, the Setup FlowCounter is incremented and an Event is generated. Alternatively, eachtime a parameterized QoS flow is released from a network, the ReleaseFlow Counter is incremented triggering an Event. Once an Event isgenerated, an unsolicited response message may be transmitted.

A Path Information Event is generated by a node each time there is achange in path information. For example, if the path of a parameterizedflow changes, e.g., a node is dropped or added from the transmit path,then the node would send an Event message to the QoS Device Service orL2ME Aggregation Entity. The message may be implemented as anunsolicited response message or as a response to being polled by the QoSDevice Service or L2ME Aggregation Entity.

A Most Recent Stream Action Event occurs each time a flow is setup ortorn down in the network. If a parameterized QoS flow is setup in thenetwork, then the Setup Flow Counter in a node is incremented and anEvent message is generated. Similarly, if a parameterized QoS flow istorn down in the network, then a Release Flow Counter in a node isincremented and an Event message is generated.

An Interface Capability Event is a particular event which occurs when anon-parameterized QoS capable node joins a parameterized QoS capablenetwork. When this Event occurs, each existing parameterized QoS cablenode may automatically down-grade to non-parameterized QoS and supportonly prioritized and best effort QoS. The existing nodes each informtheir QoS Device Service or L2ME Aggregation Entity of the change bygenerating an event and either sending the message as an unsolicitedresponse or transmitting the event message in response to polling fromthe parameterized QoS Device Service or L2ME Aggregation Entity. The QoSDevice Service or L2ME Aggregation Entity may determine what the Eventis by comparing the values of the node's current Native Quality ofService, Admission Control Supported, and Segment ID fields with theprevious values.

A Flow Error Event is generated when an admitted parameterized QoS flowcan no longer be supported in the network. For example, if the networkbandwidth is reduced due to a change in the network topology, e.g., anode is removed, then a Flow Error Event is generated.

A Parameterized Bandwidth Exceeded Event is triggered when theparameterized bandwidth is exceeded. If the parameterized bandwidth isexceeded and the event is triggered, then it is possible that some ofthe admitted parameterized QoS flows are no longer properlytransmitting. Accordingly, the parameterized bandwidth exceeded Eventgenerates a message which is sent as an unsolicited response or asresponse to polling.

The Segment ID Changed Event is generated when the segment ID changes. Achange in the segment ID may occur if the NC of the network changes inthe case where the pQoS segment ID is related to the MAC address of theNC, or if the frequency channel number on which the network operateschanges in the case where the pQoS segment ID is related to thefrequency channel number.

In addition to the above described embodiments, the disclosed method,system, and apparatus may be embodied in the form ofcomputer-implemented processes and apparatus for practicing thoseprocesses. The present disclosed method, system, and apparatus may alsobe embodied in the form of computer program code embodied in tangiblemedia, such as floppy diskettes, read only memories (ROMs), CD-ROMs,hard drives, “ZIP™” high density disk drives, DVD-ROMs, flash memorydrives, or any other computer-readable storage medium, wherein, when thecomputer program code is loaded into and executed by a computer, thecomputer becomes an apparatus for practicing the disclosed method andsystem. The present disclosed method, system, and apparatus may also beembodied in the form of computer program code, for example, whetherstored in a storage medium, loaded into and/or executed by a computer,wherein, when the computer program code is loaded into and executed by acomputer, the computer becomes an apparatus for practicing the disclosedmethod, system, and apparatus. When implemented on a general-purposeprocessor, the computer program code segments configure the processor tocreate specific logic circuits.

Although the disclosed method and system have been described in terms ofembodiments, it is not limited thereto. Rather, the appended claimsshould be construed broadly, to include other variants and embodimentsof the disclosed method and system, which may be made by those skilledin the art without departing from the scope and range of equivalents ofthe disclosed method and system.

1. A method for managing data transmission, comprising the steps of: (a)making a prescribed bandwidth on a network resource available to atleast one requestor for transmitting or receiving data according to afirst request of a first request type, the first request type have aprescribed quality of service guarantee; (b) transmitting first data inaccordance with the first request to or from the at least one requesteron the network resource, such transmission using a first portion of theprescribed bandwidth, if the first data are available to be transferredto or from the at least one requestor; (c) transmitting second dataaccording to a second request of a second request type on the networkresource to or from the at least one requestor or a second requester,the second data transmitted without a quality of service guarantee, thetransmission using a second portion of the prescribed bandwidth, if thefirst portion of the prescribed bandwidth is less than the entireprescribed bandwidth.
 2. The method of claim 1, wherein: the prescribedbandwidth is less than an entire bandwidth of the network resource; andthe method further comprises transmitting the second data on the networkresource to or from the at least one requester or the second requesterin accordance with the second request, the second data transmittedwithout a quality of service guarantee using a remaining portion of theentire bandwidth of the network resource, if the prescribed bandwidth isnot sufficient to transmit both the first data and the second data. 3.The method of claim 2, wherein the prescribed bandwidth includes fromabout 60% to about 80% of the entire bandwidth of the network resource.4. The method of claim 1, wherein: during step (b), the at least onerequestor transmits or receives a variable bit rate data flow subject toa peak bandwidth on the network resource; and the second portion of theprescribed bandwidth includes an unused portion of the peak bandwidth ofthe first requestor.
 5. The method of claim 1, wherein: the at least onerequestor includes a plurality of requesters transmitting or receivingvariable bit rate data flows; and each request of the first request typehas a respective peak bandwidth on the network resource; and the secondportion of the prescribed bandwidth includes unused portions of therespective peak bandwidth of one or more of the requests of the firstrequest type.
 6. The method of claim 5, wherein: a first requestorrequests transmission of an amount of data exceeding the peak bandwidthof the first request during a transmission cycle; and a second requestorhas an amount of data available for transmission that is less than thepeak bandwidth of the second request during the same transmission cycle,and the first data transmitting step includes transmitting the amount ofdata exceeding the peak bandwidth of the first request during thetransmission cycle on behalf of the first requester.
 7. The method ofclaim 1, further comprising: assigning time slots within a cycle havinga predetermined cycle duration to one or more of the group consisting ofrequests of the first request type and requests of the second requesttype, such that any request of the first request type, for whichrespective first data are available to be transferred, is assigned atleast one of the time slots within the cycle; and assigning a time slotcorresponding to any request of the first request type, for whichrespective first data are not available to be transferred, to at leastone request of the second type within the cycle, wherein the first data,transmitting step and second data transmitting step transmit data to orfrom each of the requestors that submits a request of the first andsecond request types to which at least one time slot in the cycle isassigned.
 8. The method of claim 7, wherein each request of the firstrequest type has a respective peak number of time slots per cycle, andthe time slot assigning step includes assigning to each respectiverequest of the first request type the respective peak number of timeslots corresponding to that request, if data corresponding to thatrequest are available for transfer within the cycle.
 9. The method ofclaim 7, further comprising assigning any remaining time slots withinthe cycle to the at least one request of the second request type. 10.The method of claim 9, wherein: the at least one request of the secondrequest type includes a plurality of requests of the second requesttype, each request of the second request type has a respective priority,and any time slot within the cycle that is not assigned to a request ofthe first request type is assigned to a request of the second requesttype having the highest priority among the plurality of requests of thesecond request type with data available to be transmitted during thecycle.
 11. The method of claim 10, wherein the priorities of theplurality of requests of the second type include: a first priority levelassigned to control traffic flows; a second priority level assigned toasynchronous streaming data flows; and a third priority level assignedto asynchronous data other than streaming data flows.
 12. The method ofclaim 1, wherein the requester that submits a request of the firstrequest type transmits or receives a variable bit rate data flow, andthe requester that submits a request of the second request typetransmits or receives an asynchronous data flow.
 13. The method of claim1, wherein the requester that submits a request of the first requesttype transmits or receives a parameterized data flow, and the requestorthat submits a request of the second request type transmits or receivesa prioritized data flow.
 14. The method of claim 1, wherein the firstdata transmission step and second data transmission step are performedover a coaxial network.
 15. A method of reporting a change in a network,comprising the steps of: determining a change in a network; generating afirst Layer 2 message in response to the change, the Layer 2 messageindicating a change has occurred in the network; and transmitting thefirst Layer 2 message to a node connected to the network, wherein uponreceiving the first Layer 2 message the node transmits a notification toan upper layer application.
 16. The method of claim 15, wherein the stepof determining a change in a coordinated network includes the steps of:receiving a second Layer 2 message from one or more network nodes;comparing a value in the second Layer 2 message to a stored value; anddetermining that a network change has occurred, if the value in thesecond Layer 2 message does not equal the stored value.
 17. The methodof claim 15, wherein the change in the coordinated network is a loss ofone of the network nodes.
 18. The method of claim 15, wherein the changein the coordinated network is a decrease in a bandwidth of a resource inthe network.
 19. The method of claim 15, further including the step of:receiving a second Layer 2 message in response to the first Layer 2message, the second Layer 2 message requesting data concerning the firstLayer 2 message.
 20. A method for managing data transmission in a sharednetwork, comprising the steps of: making a prescribed bandwidth on ashared network resource available to at least one requester with aprescribed quality of service guarantee for a first time interval;transmitting data to or from the at least one requester on the sharednetwork resource during the first time interval; and releasing theshared network resource associated with the prescribed bandwidth at theexpiration of the first time interval, if a request to make theprescribed bandwidth available for a second time interval is notreceived from the at least one requester.
 21. The method of claim 20,further including the step of: continuing to make the prescribedbandwidth on the shared network resource available to the at least onerequestor during the second time interval, if a request for a secondtime interval is received from the at least one requester.
 22. Themethod of claim 21, wherein the first time interval is different fromthe second time interval.
 23. The method of claim 22, wherein the firsttime interval is approximately equal to the second time interval. 24.The method of claim 21, further comprising the step of: releasing thenetwork resource associated with the prescribed bandwidth, if a flow isnot active for a predetermined third time interval.
 25. The method ofclaim 20, wherein the shared network resource is a coaxial cabletransmission network.
 26. The method of claim 20, further comprisingtransmitting data to or from a second requestor on the shared networkresource during the second time interval.
 27. A method of performing anetwork transaction at Layer 2 comprising the steps of: receiving at anetwork coordinator a Layer 2 request to perform a network transactionfrom a first node; transmitting a first Layer 2 message from the networkcoordinator to at least one node connected to the network in response tothe request; receiving, at the network coordinator, a response to thefirst Layer 2 message from at least one node connected to the network,the response including network resource allocation data; determining thecapabilities of the network at the network coordinator based on thereceived response to the first Layer 2 message; and allocating networkresources to perform the network transaction if the network coordinatordetermines there are sufficient network resources to perform thetransaction.
 28. The method of claim 27, wherein the first nodetransmits the request to perform a network transaction as a consequenceof receiving a message from an upper-layer application.
 29. The methodof claim 27, wherein the first node transmits the request to perform anetwork transaction as a consequence of receiving a message from asecond node.
 30. The method of claim 29, wherein the second node is onlyconnected to the first node through an upper layer application.
 31. Themethod of claim 29, wherein the second node is bridged to the first nodewith a Layer-2 bridging technique.
 32. The method of claim 27, whereinthe determining step includes calculating the available bandwidth in thenetwork.
 33. The method of claim 27, wherein the determining stepfurther includes calculating the amount of bandwidth required to performthe transaction.
 34. The method of claim 32, wherein the total bandwidthon the network is divided into a first portion for data transmissionhaving a quality of service guarantee and a second portion for datatransmission without a quality of service guarantee.
 35. The method ofclaim 34, wherein the first portion of bandwidth comprises about 60 to80 percent of the total network bandwidth.
 36. The method of claim 34,wherein the data transmitted on the second portion of the bandwidthincludes at least one priority level.
 37. The method of claim 27,wherein the allocating step includes transmitting a second message to atleast one network node, the second message instructing the at least onenode to allocate resources.
 38. The method of claim 27, wherein thefirst node is any node connected to the network.
 39. The method of claim27, wherein the at least one node is an ingress node.
 40. The method ofclaim 39, further comprising the step of: determining the capabilitiesof the ingress node at the ingress node.
 41. The method of claim 27,wherein the network transaction is creating a pQoS flow in the network,the method further comprising: assigning the pQoS flow a unique flowidentifier.
 42. The method of claim 41, wherein the unique flowidentifier is based in part on a destination address of the flow. 43.The method of claim 42, wherein the unique flow identifier is based inpart on a priority value of the flow.
 44. A method comprising the stepsof: (a) providing a priority value and a destination Media AccessControl (MAC) address of a network flow; (b) assigning anOrganizationally Unique Identifier to a set of most significant bytes ofa Flow Handle of a flow, the Flow Handle being in the form of a MACaddress and used to identify a flow between a sending node and areceiving node at a network level; (c) assigning a number of the leastsignificant bytes of a unicast IP address of the receiving node as theleast significant bits of the Flow Handle; (d) creating a flowidentifier at the network level by combining the priority value, thedestination MAC address, and the Flow Handle; and (e) transmitting atleast one network management message to a network node, wherein thenetwork management message includes the Flow Handle.
 45. The method ofclaim 44, further comprising the steps of: (f) incrementing the FlowHandle by a predetermined value if the flow identifier is already usedin the network; and (g) repeating step (f) until the flow identifier isunique in the network.
 46. A machine readable storage medium encodedwith program code, wherein when the program code is executed by aprocessor, the processor performs a method comprising the steps of: (a)making a prescribed bandwidth on a network resource available to atleast one requestor for transmitting or receiving data according to afirst request of a first request type, the first request type have aprescribed quality of service guarantee; (b) transmitting first data inaccordance with the first request to or from the at least one requesteron the network resource, such transmission using a first portion of theprescribed bandwidth, if the first data are available to be transferredto or from the at least one requestor; (c) transmitting second dataaccording to a second request of a second request type on the networkresource to or from the at least one requestor or a second requestor,the second data transmitted without a quality of service guarantee, thetransmission using a second portion of the prescribed bandwidth, if thefirst portion of the prescribed bandwidth is less than the entireprescribed bandwidth.
 47. The machine readable storage medium of claim46, wherein: the prescribed bandwidth is less than an entire bandwidthof the network resource; and the method further comprises transmittingthe second data on the network resource to or from the at least onerequestor or the second requester in accordance with the second request,the second data transmitted without a quality of service guarantee usinga remaining portion of the entire bandwidth of the network resource, ifthe prescribed bandwidth is not sufficient to transmit both the firstdata and the second data.
 48. The machine readable storage medium ofclaim 47, wherein the prescribed bandwidth includes from about 60% toabout 80% of the entire bandwidth of the network resource.
 49. Themachine readable storage medium of claim 46, wherein: during step (b),the at least one requestor transmits or receives a variable bit ratedata flow subject to a peak bandwidth on the network resource; and thesecond portion of the prescribed bandwidth includes an unused portion ofthe peak bandwidth of the first requestor.
 50. A machine readablestorage medium encoded with program code, wherein when the program codeis executed by a processor, the processor performs a method comprisingthe steps of: determining a change in a network; generating a firstLayer 2 message in response to the change, the Layer 2 messageindicating a change has occurred in the network; and transmitting thefirst Layer 2 message to a node connected to the network, wherein uponreceiving the first Layer 2 message the node transmits a notification toan upper layer application.
 51. The machine readable storage medium ofclaim 50, wherein the step of determining a change in a coordinatednetwork includes the steps of: receiving a second Layer 2 message fromone or more network nodes; comparing a value in the second Layer 2message to a stored value; and determining that a network change hasoccurred, if the value in the second Layer 2 message does not equal thestored value.
 52. The machine readable storage medium of claim 50,wherein the change in the coordinated network is a loss of one of thenetwork nodes.
 53. The machine readable storage medium of claim 50,wherein the change in the coordinated network is a decrease in abandwidth of a resource in the network.
 54. A machine readable storagemedium encoded with program code, wherein when the program code isexecuted by a processor, the processor performs a method comprising thesteps of: making a prescribed bandwidth on a shared network resourceavailable to at least one requester with a prescribed quality of serviceguarantee for a first time interval; transmitting data to or from the atleast one requester on the shared network resource during the first timeinterval; and releasing the shared network resource associated with theprescribed bandwidth at the expiration of the first time interval, if arequest to make the prescribed bandwidth available for a second timeinterval is not received from the at least one requester.
 55. Themachine readable storage medium of claim 54, further comprising the stepof: continuing to make the prescribed bandwidth on the network resourceavailable to the at least one requester during the second time interval,if a request for a second time interval is received from the at leastone requester.
 56. The machine readable storage medium of claim 55,wherein the first time interval is different from the second timeinterval.
 57. The machine readable storage medium of claim 55 furthercomprising the step of: releasing the network resource associated withthe prescribed bandwidth, if a flow is not active for a predeterminedthird time interval.
 58. A machine readable storage medium encoded withprogram code, wherein when the program code is executed by a processor,the processor performs a method comprising the steps of: receiving at anetwork coordinator a Layer 2 request to perform a network transactionfrom a first node; transmitting a first Layer 2 message from the networkcoordinator to at least one node connected to the network in response tothe request; receiving, at the network coordinator, a response to thefirst Layer 2 message from at least one node connected to the network,the response including network resource allocation data; determining thecapabilities of the network at the network coordinator based on thereceived response to the first Layer 2 message; and allocating networkresources to perform the network transaction if the network coordinatordetermines there are sufficient network resources to perform thetransaction.
 59. The machine readable storage medium of claim 58,wherein the first node transmits the request to perform a networktransaction as a consequence of receiving a message from an upper-layerapplication.
 60. The machine readable storage medium of claim 58,wherein the first node transmits the request to perform a networktransaction as a consequence of receiving a message from a second node.61. The machine readable storage medium of claim 60, wherein the secondnode is only connected to the first node through an upper layerapplication.
 62. A machine readable storage medium encoded with programcode, wherein when the program code is executed by a processor, theprocessor performs a method comprising the steps of: (a) providing apriority value and a destination Media Access Control (MAC) address of anetwork flow; (b) assigning an Organizationally Unique Identifier to aset of most significant bytes of a Flow Handle, the Flow Handle being inthe form of a MAC address and used to identify a flow between a sendingnode and a receiving node at the network level; (c) assigning a numberof the least significant bytes of a unicast IP address of the receivingnode as the least significant bits of the Flow Handle; (d) creating aflow identifier at the network level by combining the priority value,the destination MAC address, and the Flow Handle; and (e) transmittingat least one network management message to a network node, wherein thenetwork management message includes the Flow Handle.
 63. The machinereadable storage medium of claim 62, further comprising the steps of:(f) incrementing the Flow Handle by a predetermined value if the flowidentifier is already used in the network; and (g) repeating step (f)until the flow identifier is unique in the network.
 64. A systemcomprising: a Network Coordinator node connected to a network, theNetwork Coordinator configured to make a prescribed bandwidth on anetwork resource available to at least one node for transmitting orreceiving data according to a first request of a first request type, thefirst request type having a prescribed quality of service guarantee; theNetwork Coordinator being configured for connection to a first node viathe network, such that the first node is configured to transmit orreceive data in accordance with the first request, the transmission ofdata using a first portion of the prescribed bandwidth, if the firstdata are available to be transmitted to or from the first node, and theNetwork Coordinator is configured to make the network resource availableto the first node to transfer or receive second data according to asecond request of a second request type, the second data transmittedwithout a quality of service guarantee, the transmission of the seconddata using a second portion of the prescribed bandwidth, if the firstportion of the prescribed bandwidth is less than the entire prescribedbandwidth.
 65. The system of claim 64, wherein the prescribed bandwidthis from about 60% to about 80% of the entire bandwidth of the networkresource.
 66. The system of claim 64, wherein the first node isconfigured to transmit or receive a variable bit rate data flow.
 67. Thesystem of claim 64, wherein the Network Coordinator makes a prescribedbandwidth available to at least one node in response to receiving aLayer 2 message from a second network node, the second network node nottransmitting or receiving the data.
 68. An apparatus comprising: a firstnode including: a physical interface for connection to a network, thephysical interface configured to transmit and receive Layer 2 messagesthrough the network, and a Layer 2 interface configured to detect achange in the network, wherein the first node is configured forgenerating and transmitting a Layer 2 message to a second node as aconsequence of detecting a change in the network.
 69. The apparatus ofclaim 68, wherein the first node is further configured to transmit amessage to an upper layer application upon detecting a change in thenetwork.
 70. A system comprising: a Network Coordinator connected to anetwork, the Network Coordinator configured to make a prescribedbandwidth on a shared network resource available to at least one nodewith a prescribed quality of service guarantee for a first timeinterval; a first network node configured to transmit or receive data onthe shared network resource during the first time interval; wherein theNetwork Coordinator is further configured to release the shared networkresource associated with the prescribed bandwidth at the expiration ofthe first time interval, if a request to make the prescribed bandwidthavailable for a second time interval is not received from the firstnetwork node.
 71. The system of claim 70, wherein the NetworkCoordinator is further configured to make the prescribed bandwidth onthe shared network resource available to the first network node duringthe second time interval is received from the first network node. 72.The system of claim 71, wherein the first time interval is differentfrom the second time interval.
 73. A system comprising: one or morenodes connected to a network, the one or more nodes configured totransmit and receive messages through the network; and a NetworkCoordinator connected to the network, the Network Coordinator configuredto determine the capabilities of the network including the capabilitiesof each of the one or more nodes in the network through Layer 2messaging, the Network Coordinator further configured to allocatenetwork resources to the one or more nodes to perform networktransactions, if the Network Coordinator determines there are sufficientnetwork resources through Layer 2 messaging.
 74. The system of claim 73,wherein the Network Coordinator allocates resources for a data flow froma first network node to a second network node.
 75. The system of claim74, wherein the Network Coordinator allocates the resources for the dataflow in response to receiving a Layer 2 message from a third networknode.
 76. An apparatus comprising: a physical interface for connectionto a network, the physical interface configured to transmit and dataflows through the network; and a Layer 2 interface configured togenerate a flow identifier that is unique in the network, the flowidentifier including a destination address of a destination node of theflow, a priority value of the flow, and a FlowHandle, wherein theFlowHandle is in the form of a Media Access Control address and is basedin part on a unicast address of the destination node of the flow. 77.The apparatus of claim 76, wherein the Layer-2 interface is furtherconfigured to increment the FlowHandle by a predetermined value if theflow identifier is not unique in the network.